lin6051 发表于 2016-4-11 16:30:29

[求助]win7下空网关ping命令问题

本帖最后由 lin6051 于 2016-4-11 22:14 编辑

我的一个程序ping判断192.168.1.1通执行A.exe , 192.168.2.1通就执行B.exe
在xp下没什么问题
但在win7下
比如:
我电脑设192.168.1.10,网关空白, 接的设备是网关是192.168.1.1
ping192.168.2.1 当然不通,可 程序判断是 通的是怎么解决

代码如下:if ping('192.168.2.1',200) then
msgbox(0,'','111')
else
msgbox(0,'','222')
endifwin7下 手工ping 看了下 显示是:
PING: 传输失败.General failure
但xp下显示是 time out


暂时用回显判断字符串解决,不过用起来cpu占用挺高的MsgBox(0,'', _ping('192.168.1.1',100))


Func _ping($ipurl,$delay=100);返回0不通 >0通
    Sleep(50)
    Local $line,$l=Run(@ComSpec & " /c " & 'ping -n 1 -w '&$delay&' '&$ipurl,'',@SW_HIDE,2)
    While 1
    $line &=StdoutRead($l)
    If @error Then ExitLoop
    Sleep(50)
    WEnd
    Return StringInStr($line,'TTL=')
EndFunc

lin6051 发表于 2016-4-11 18:06:09

更新了下在空白网关下 仅设ip和掩码ping啥结果都返回大于0,难道是我的au3版本问题?我用的是 3.3.6.1

chamlien 发表于 2016-4-11 18:50:10

试试:#include <Constants.au3>
#RequireAdmin
$r = Run(@ComSpec& " /c " & 'ping 127.0.0.1', "", @SW_HIDE, $STDOUT_CHILD)
Local $s

While 1
      $s &=StdoutRead($r)
         If @error Then
                ExitLoop
      EndIf
      Sleep(40)
        WEnd
       
MsgBox(0,0, $s)

lin6051 发表于 2016-4-11 19:17:36

本帖最后由 lin6051 于 2016-4-11 19:21 编辑

回复 3# chamlien


多谢    我也仅想到用ping回显处理一下 ping 192.168.2.1 -n 1 -w 10
页: [1]
查看完整版本: [求助]win7下空网关ping命令问题