我们学校的校园网是个局域网 需要登录后才能访问外网,采用DrCom网页登录(学校的很多网站不用登录也能上 比如学校官网等)。
未登录状态下浏览器打开任意页面都会被跳转到账号登陆页面。
windows的很多检测网络的API只要插上网线就说连接正常 该如何判断已经连上了外网呢?
未登录状态下浏览器打开任意页面都会被跳转到账号登陆页面。
windows的很多检测网络的API只要插上网线就说连接正常 该如何判断已经连上了外网呢?

1 nomaka Mar 11, 2015 你连个外网地址 能通就说明连上了 |
2 FastMem Mar 11, 2015 很简单,由于我只会PHP不给演示代码了。 可以这样,定义一个默认站点,然后用curl去抓取这个站点,判断是否存在指定内容,如果存在返回正常,不存在返回不正常就可以了。 |
4 choury Mar 11, 2015 你不会在jlu吧 |
5 VYSE Mar 11, 2015 |
6 sany217 Mar 11, 2015 ICMP ping外网 |
7 denghongcai Mar 11, 2015 Win32 API中有InternetGetConnectedState和InternetCheckConnection,配套使用即可 |
8 chengr28 Mar 11, 2015 https://technet.microsoft.com/en-us/library/ee126135(v=ws.10).aspx 巨硬自己有网络指示器,不过没发现有 API……貌似只能自己去请求,不过 HTTP 应该有 API 吧 |
9 wzyuliyang Mar 11, 2015 #!/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 Mar 11, 2015 - - 我写过,其实吧,访问图片链接不就好了,一张是校内网的,访问成功就表示连上内网,一张放在外网,如果图片访问不了就练不了外网呗... 图片内容可以分别写“内网连接成功”,“外网连接成功”。 比较简便且可以实现的。。 |
13 jefby Mar 11, 2015 ping www.baidu.com 查看返回值,如果$?==0,OK;否则没连外网 |
14 andy12530 Mar 11, 2015 访问apple的一个网址,返回 success,说明通了。 iphone就是这么干的啊,难道你们都不知道么。 |
16 withrock Mar 12, 2015 #检查主机是否连通 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 Mar 12, 2015 安卓5.0的判断机制是先访问 clients3.google.com/generate_204 这个网址,而这个网址如字面所说,会产生一个 http 204 返回值。204返回值的意思就是空内容。如果当前wifi是需要登录才可以连接,那么当试图访问google的服务器的时候,wifi的验证机制一定会自动跳转到一个登录页面,这个时候http请求的返回值就必然不是204了。就是通过这一机制,便可以区分当前wifi是否需要验证。 |
19 intpbyd OP |