关于程序如何判断是否连通了互联网。
网上提供的方法是,连接dns服务器,看是否有返回。比如,连接8.8.8.8的53端口,如果能正常连接说明可以上网。经过测试8.8.8.8不是很流畅,我修改为114.114.114.114的53端口。由于我应用里每10秒就检测一次。不知道服务器会不会把我的ip当作攻击把IP封锁? 不会。除非你达到几百kb连续流量 还有ping方法 miaoguoqiang 发表于 2018-11-9 17:05还有ping方法
是不是ping会快点?
114.114.114.114也不保险,我前几天刚经历了114.114.114.114,1.2.4.8,8.8.8.8 同时不能用的情况,浙江移动的网络。最好是以连接自己的服务器是否通畅为标准。 vtte 发表于 2018-11-9 17:16
114.114.114.114也不保险,我前几天刚经历了114.114.114.114,1.2.4.8,8.8.8.8 同时不能用的情况,浙江移 ...
会不会你的电脑,确实是断网了?哈哈 public staticString[] dnsipList=new String[]
{
"114.114.114.114",
"114.114.115.115",
"1.2.4.8",
"210.2.4.8",
"101.226.4.6",
"123.125.81.6",
"8.8.8.8",//googleDNS
"8.8.4.4",//googleDNS 后备
};
// ipAddress可以是IP或者是域名如:183.232.231.173或者www.baidu.com
public static boolean ping(String ipAddress) {
int timeOut = 3000; // 超时应该在3钞以上
boolean status = false;
try {
status = InetAddress.getByName(ipAddress).isReachable(timeOut);
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
log4j.error(e);
} catch (IOException e) {
// TODO Auto-generated catch block
log4j.error(e);
} // 当返回值是true时,说明host是可用的,false则不可。
return status;
}
static boolean isOnline()
{
for (int i=0; i<dnsipList.length; i++)
{
if (ping(dnsipList))
{
return true;
}
}
return false;
}
ping百度
页:
[1]