songqi_z 发表于 2009-9-11 11:34:07

求一个能自动检测网卡网关IP然后对其ping测试,及时显示ping结果状态的代码。

本帖最后由 songqi_z 于 2009-9-16 19:10 编辑

求一个能自动检测网卡网关IP然后对其ping测试,及时显示ping结果状态的代码。如下是找到网卡网关IP但不知如何对其ping测试,希望高人相助!!!!

$objWMIService = ObjGet("winmgmts:\\.\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = TRUE", "WQL", 0x10 + 0x20)
For $objItem In $colItems
      $IPGateway = $objItem.DefaultIPGateway(0)
Next
$Number3 = StringRegExpReplace($IPGateway, '(\d+\.){12}', '')

songqi_z 发表于 2009-9-13 16:40:57

没人能帮解答一下?

afan 发表于 2009-9-13 17:02:20

自动 的含义是?

fjvip 发表于 2009-9-13 20:04:51

本帖最后由 fjvip 于 2009-9-13 20:23 编辑

;未严格测试,只提供思路而已
#include <inet.au3>
dim $ip,$file,$var
For $i = 100 to 254
      $var = Ping ("192.168.0."&$i,500)
      If $var Then
      Else
ToolTip ("Pinging:192.168.0."&$i,1,1)
      $ip ="192.168.0."&$i&"|"
$file = FileOpen("log.txt", 1)
      FileWriteLine($file,$ip & @YEAR & "年" & @MON & "月" & @MDAY &"日" &@HOUR &"时"& @MIN &"分")
FileClose($file)
      EndIf
Next

songqi_z 发表于 2009-9-13 21:16:32

求一个能自动检测网卡网关IP然后对其ping测试,及时显示ping结果状态的代码。如下是找到网卡网关IP但不知如何对其ping测试,希望高人相助!!!!

$objWMIService = ObjGet("winmgmts:\\.\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = TRUE", "WQL", 0x10 + 0x20)
For $objItem In $colItems
      $IPGateway = $objItem.DefaultIPGateway(0)
Next
$Number3 = StringRegExpReplace($IPGateway, '(\d+\.){12}', '')

afan 发表于 2009-9-13 21:48:59

求一个能自动检测网卡网关IP然后对其ping测试,及时显示ping结果状态的代码。如下是找到网卡网关IP但不知如何对其ping测试,希望高人相助!!!!

$objWMIService = ObjGet("winmgmts:\\.\root\CIMV2")
$colItem ...
songqi_z 发表于 2009-9-13 21:16 http://www.autoitx.com/images/common/back.gif

加上ping不就行了$objWMIService = ObjGet("winmgmts:\\.\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = TRUE", "WQL", 0x10 + 0x20)
For $objItem In $colItems
        $IPGateway = $objItem.DefaultIPGateway(0)
Next
$IPGateway = StringRegExpReplace($IPGateway, '(\d+\.){12}', '')
Dim $sResult
$iPid = Run("ping " & $IPGateway, "", 0, 3)
While 1
        $sLine = StdoutRead($iPid)
        If @error Then ExitLoop
        $sResult &= $sLine
WEnd

MsgBox(0, "ping " & $IPGateway, $sResult)

songqi_z 发表于 2009-9-14 09:32:06

本帖最后由 songqi_z 于 2009-9-14 10:11 编辑

感谢afan热心、快的解答,谢谢了,
但如何增加ping 的行数,及时显示DOS窗口ping结果状态呢

afan 发表于 2009-9-14 09:38:05

ping 的行数? 是什么意思? 再 ping 点别的?

辉聚网络 发表于 2009-9-14 10:42:00

他的意思应该是一直回显ping的状态

songqi_z 发表于 2009-9-15 17:40:27

对,就是这样,如果照afan的解答,ping100个包等待的时间太长。

afan 发表于 2009-9-15 18:50:11

建个Gui,弄个Edit控件,它就可以持续回显了~
Ping的内容过多可以另建txt文本一行行读取执行,或建个bat文件一次执行即可。

losthat 发表于 2010-12-11 23:31:22

使用ping函数,返回值就可以了

hejingcai 发表于 2011-3-30 11:54:00

好东西,谢谢分享。

hkc5599 发表于 2011-4-12 11:06:56

good example...3QQQQQQQQ

au3x 发表于 2011-12-4 01:17:42

gui 很难...
页: [1]
查看完整版本: 求一个能自动检测网卡网关IP然后对其ping测试,及时显示ping结果状态的代码。