fuinei 发表于 2012-3-27 16:44:26

[已解决]判断PC能否访问Internet

本帖最后由 fuinei 于 2012-3-30 08:31 编辑

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

tttbbb999 发表于 2012-3-27 16:57:48

Tracert命令

fuinei 发表于 2012-3-27 17:58:22

使用Tracert命令不好判断吧?AU3有没有什么比较好的函数或UDF能否判断当前的网络连接能否访问某个域名或地址呢?

jy010 发表于 2012-3-27 21:00:17

telnet www163.com 80

通的话就是能访问,端口打不开即不能访问

fuinei 发表于 2012-3-27 21:17:55

使用telnet判断是一个很不错的方法,还有没有其它方法呢?
AU3有没有自带的函数可解决这个问题呢?

calora88 发表于 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

www378660084 发表于 2012-3-27 23:25:53


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

fuinei 发表于 2012-3-28 08:36:50

公司环境使用策略禁止用户访问Internet,ping和telnet都是可以的(4楼和7楼兄弟的办法对我都不适用),但实际可能会无法打开指的站点,6楼的方法测试了一下总部返回访问成功,请问各位有没有其它的方法呢?

calora88 发表于 2012-3-28 16:08:30

你可以先把网址改成http://www.1111163.com, 看会失败吗??
如果还是成功的话, 方便把a.txt里面的内容贴上来吗?

redapple2008 发表于 2012-3-28 16:53:58

不错的方法,学习了

fuinei 发表于 2012-3-28 17:33:38

回复 9# calora88
把网址修改为http://www.1111163.com就提示失败了

calora88 发表于 2012-3-28 18:00:36

还是要麻烦你把 url 设成 www.163.com 时的a.txt 贴上来

fuinei 发表于 2012-3-28 20:46:00

明天到公司后贴上来,请问有没有不产生临时文件的方法呢?

fuinei 发表于 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)对于我司这种情况不知有没有不需产生临时文件的判断方法呢?

calora88 发表于 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] 2 3
查看完整版本: [已解决]判断PC能否访问Internet