我们学校的校园网是个局域网 需要登录后才能访问外网,采用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 |