手机访问一个公司内部的一个网页,判断手机连接的是公司的网络还是外部的网络,如果是连接的公司网络则直接请求公司服务器,若是外部网络则请求中间服务器进行连接,大佬们这个该怎么实现。
如果手机连的WIFI怎么判断他是连接的公司的网络,还是家里的网络。
如果手机连的WIFI怎么判断他是连接的公司的网络,还是家里的网络。
解决方案 »
- 传智播客 张孝祥老师6年后首作,JAVA邮件开发视频教程
- java ResultSet getTime() 和 getDate()?
- 求助SSH如何配置Jboss连接池
- 执行动态action方法时候不能自动通过setter方法给字段赋值
- java如何取得webservice返回的对象
- Sprng
- 谁做过 web应用 与 openfire集成啊 给点文档和例子
- 在servlet中如何加载调用EJB??郁闷!
- 为什么我的机子装不了Java虚拟机,连Weblogic套装软件都装不上去?——急!
- java bean 调用 EJB(BMP) 的问题
- 求助,spring cloud 升级遇到的问题
- httpRequest.readyState ==4
其他的都是外网
android手机
WifiManager wifiManager =(WifiManager) context.getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ipAddr = wifiInfo.getIpAddress();
String ip = (ipAddr & 0xFF) + "." + ((ipAddr>>8) & 0xFF) + "." + ((ipAddr>>16) & 0xFF) + "." + ((ipAddr>>24) & 0xFF);
if (ip.matches("^(10|172|192)[.].*")) { //内网
//call HI
} else {//外网
//call B
}
如果是要判断是否在同一局域网内,可以不用判断内网外网,判断ip和目标服务器的ip的前三段是否相同
比如手机ip是xxx.yyy.zzz.aaa,HI是xxx.yyy.zzz.bbb,前三段相同,所以是同一个局域网
就好比 Internet 和 Intranet 的区别。内网中可以使用外网地址,只要不被路由出去。所以单凭 IP 地址是不精确的。
ip不一定精确,但在一定程度上还是可以保证准确率的
10,172,192是专门保留的IP,外网是永远不会出现这样的IP的
https://baike.baidu.com/item/内网ip/8881186我很好奇LS上的【内网中可以使用外网地址】,你的路由器是如何设置内网的,我的认识里路由器的IP都是内网IP段,怎么才能设成外网IP段的?(路由器的出口IP不算,这个IP可能是外网IP,跟内网无关)
ip不一定精确,但在一定程度上还是可以保证准确率的
10,172,192是专门保留的IP,外网是永远不会出现这样的IP的
https://baike.baidu.com/item/内网ip/8881186我很好奇LS上的【内网中可以使用外网地址】,你的路由器是如何设置内网的,我的认识里路由器的IP都是内网IP段,怎么才能设成外网IP段的?(路由器的出口IP不算,这个IP可能是外网IP,跟内网无关)大企业的网络设置中,可以出现诸如 201、202 开头公网地址,只要不路由出到互联网,内网完全可以使用所有 IP 地址而不限172、192等地址,完全可以将互联网看做是地球上一个巨大的内网。当然如果仅限规范,使用 10、127、172、192 开头的地址,是可以当做内网的。
我觉得这种不按规则出牌有点属于钻牛角尖(就像你说的容易造成网络不正常),至于什么配置百度服务器的,我觉得跟IP没什么关系,有域名解析就可以做到了
对于一个手机的wifi来说,我觉得不按规则出牌的做法几率可以忽略,除非做一些特殊的测试