1
nomaka 2015-03-11 14:37:54 +08:00
你连个外网地址 能通就说明连上了
|
2
FastMem 2015-03-11 16:03:02 +08:00
很简单,由于我只会PHP不给演示代码了。
可以这样,定义一个默认站点,然后用curl去抓取这个站点,判断是否存在指定内容,如果存在返回正常,不存在返回不正常就可以了。 |
4
choury 2015-03-11 16:34:22 +08:00
你不会在jlu吧
|
5
VYSE 2015-03-11 16:38:15 +08:00 1
|
6
sany217 2015-03-11 17:24:48 +08:00
ICMP ping外网
|
7
denghongcai 2015-03-11 17:55:04 +08:00
Win32 API中有InternetGetConnectedState和InternetCheckConnection,配套使用即可
|
8
chengr28 2015-03-11 17:55:34 +08:00 1
https://technet.microsoft.com/en-us/library/ee126135(v=ws.10).aspx
巨硬自己有网络指示器,不过没发现有 API……貌似只能自己去请求,不过 HTTP 应该有 API 吧 |
9
wzyuliyang 2015-03-11 17:59:21 +08:00
#!/bin/bash
result=$(curl -s -o /dev/null -w "%{http_code}" http://www.baidu.com) echo $result okflag=200 if [ $result -eq 200 ] ; then echo "Network is ok" else echo "Network connection down! Attempting reconnection." fi |
10
15ir 2015-03-11 18:09:18 +08:00 1
- - 我写过,其实吧,访问图片链接不就好了,一张是校内网的,访问成功就表示连上内网,一张放在外网,如果图片访问不了就练不了外网呗... 图片内容可以分别写“内网连接成功”,“外网连接成功”。
比较简便且可以实现的。。 |
13
jefby 2015-03-11 20:33:31 +08:00
ping www.baidu.com 查看返回值,如果$?==0,OK;否则没连外网
|
14
andy12530 2015-03-11 21:28:52 +08:00
访问apple的一个网址,返回 success,说明通了。
iphone就是这么干的啊,难道你们都不知道么。 |
16
withrock 2015-03-12 09:57:21 +08:00
#检查主机是否连通
ping -c 2 -w 4 $host >/dev/null 2>&1 case "$?" in "0") echo "host is O.K.";; *) echo "host[$host] is NOT available." && exit 127;; esac |
17
intpbyd OP @denghongcai 没用 始终显示已连通
|
18
legendecas 2015-03-12 14:59:12 +08:00
安卓5.0的判断机制是先访问 clients3.google.com/generate_204 这个网址,而这个网址如字面所说,会产生一个 http 204 返回值。204返回值的意思就是空内容。如果当前wifi是需要登录才可以连接,那么当试图访问google的服务器的时候,wifi的验证机制一定会自动跳转到一个登录页面,这个时候http请求的返回值就必然不是204了。就是通过这一机制,便可以区分当前wifi是否需要验证。
|
19
intpbyd OP |