找回密码
 加入
搜索
查看: 12256|回复: 34

[网络通信] [已解决]判断PC能否访问Internet

 火.. [复制链接]
发表于 2012-3-27 16:44:26 | 显示全部楼层 |阅读模式
本帖最后由 fuinei 于 2012-3-30 08:31 编辑

各位好,公司环境中由于策略限制,部分站点被代理服务器屏蔽或无法访问Internet,虽然是无法访问但Internet主机还是可以ping通,请问使用AU3能否判断用户能否正常访问Internet(如www.163.com)吗?

评分

参与人数 1金钱 +15 收起 理由
afan + 15 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2012-3-27 16:57:48 | 显示全部楼层
Tracert  命令
 楼主| 发表于 2012-3-27 17:58:22 | 显示全部楼层
使用Tracert命令不好判断吧?AU3有没有什么比较好的函数或UDF能否判断当前的网络连接能否访问某个域名或地址呢?
发表于 2012-3-27 21:00:17 | 显示全部楼层
telnet www163.com 80

通的话就是能访问,端口打不开即不能访问
 楼主| 发表于 2012-3-27 21:17:55 | 显示全部楼层
使用telnet判断是一个很不错的方法,还有没有其它方法呢?
AU3有没有自带的函数可解决这个问题呢?
发表于 2012-3-27 22:07:26 | 显示全部楼层
本帖最后由 calora88 于 2012-3-27 22:09 编辑

$ret=InetGet("http://www.163.com/", 'a.txt', 1, 0)
If $ret=0 Then
        MsgBox(1,1,"訪問 163 失敗")
Else
        MsgBox(1,1,"訪問 163 成功")
EndIf

评分

参与人数 1金钱 +10 收起 理由
afan + 10

查看全部评分

发表于 2012-3-27 23:25:53 | 显示全部楼层

If Ping("www.163.com") <> 0 Then
        MsgBox(0, 0, "OK")
Else
        MsgBox(0, 0, "error")
EndIf

 楼主| 发表于 2012-3-28 08:36:50 | 显示全部楼层
公司环境使用策略禁止用户访问Internet,ping和telnet都是可以的(4楼和7楼兄弟的办法对我都不适用),但实际可能会无法打开指的站点,6楼的方法测试了一下总部返回访问成功,请问各位有没有其它的方法呢?
发表于 2012-3-28 16:08:30 | 显示全部楼层
你可以先把网址改成http://www.1111163.com, 看会失败吗??
如果还是成功的话, 方便把a.txt里面的内容贴上来吗?
发表于 2012-3-28 16:53:58 | 显示全部楼层
不错的方法,学习了
 楼主| 发表于 2012-3-28 17:33:38 | 显示全部楼层
回复 9# calora88
把网址修改为http://www.1111163.com就提示失败了
发表于 2012-3-28 18:00:36 | 显示全部楼层
还是要麻烦你把 url 设成 www.163.com 时的a.txt 贴上来
 楼主| 发表于 2012-3-28 20:46:00 | 显示全部楼层
明天到公司后贴上来,请问有没有不产生临时文件的方法呢?
 楼主| 发表于 2012-3-29 09:14:32 | 显示全部楼层
本帖最后由 fuinei 于 2012-3-29 09:15 编辑

回复 12# calora88
在公司不能访问Internet有两种情况
1、当前系统帐号未通过代理服务器的验证
2、帐号已通过代理服务器的验证但策略限制不能访问Internet
使用InetGet+判断a.txt的内容可判断PC能否访问Internet,谢谢指导!
$temp = "c:\temp\a.txt"
InetGet("http://www.163.com", $temp, 1, 0)
$file = FileOpen($temp,0)
If $file = -1 Then
        MsgBox(0,"Error","找不到临时文件")
        Exit
EndIf
$content = FileRead($file)
If StringInStr($content,"Note: Please have your identity authenticated before accessing the Internet。",1) > 0 Or StringInStr($content,"http://192.168.1.254/disable/disable.htm",1) >0 Then
        MsgBox(0,1,"访问163失败")
Else
        MsgBox(0,1,"访问163成功")
EndIf 
FileDelete($temp)
对于我司这种情况不知有没有不需产生临时文件的判断方法呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2012-3-29 10:12:47 | 显示全部楼层
另一个方法
$protocol_port = 80
TCPStartup()
$server_ip = TCPNameToIP("127.0.0.1")

$socket = TCPConnect($server_ip, $protocol_port)
ConsoleWrite("TCPConnect socket=" & $socket & " - @error=" & @error & @CRLF)
If $socket = -1 Or @error Then
        MsgBox(0, 1, $server_ip & " is DOWN on port " & $protocol_port & @CRLF)
Else
        MsgBox(0, 1, $server_ip & " is UP on port " & $protocol_port & @CRLF)
EndIf
TCPShutdown()

; url ------

TCPStartup()
$server_ip = TCPNameToIP("www.163.com")

$socket = TCPConnect($server_ip, $protocol_port)
ConsoleWrite("TCPConnect socket=" & $socket & " - @error=" & @error & @CRLF)
If $socket = -1 Or @error Then
        MsgBox(0, 1, $server_ip & " is DOWN on port " & $protocol_port & @CRLF)
Else
        MsgBox(0, 1, $server_ip & " is UP on port " & $protocol_port & @CRLF)
EndIf
TCPShutdown()

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-16 16:57 , Processed in 0.093763 second(s), 30 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表