找回密码
 加入
搜索
查看: 3106|回复: 14

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

[复制链接]
发表于 2009-9-11 11:34:07 | 显示全部楼层 |阅读模式
本帖最后由 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}', '')
 楼主| 发表于 2009-9-13 16:40:57 | 显示全部楼层
没人能帮解答一下?
发表于 2009-9-13 17:02:20 | 显示全部楼层
自动 的含义是?
发表于 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
 楼主| 发表于 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}', '')
发表于 2009-9-13 21:48:59 | 显示全部楼层
求一个能自动检测网卡网关IP然后对其ping测试,及时显示ping结果状态的代码。如下是找到网卡网关IP但不知如何对其ping测试,希望高人相助!!!!

$objWMIService = ObjGet("winmgmts:\\.\root\CIMV2")
$colItem ...
songqi_z 发表于 2009-9-13 21:16


加上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)
 楼主| 发表于 2009-9-14 09:32:06 | 显示全部楼层
本帖最后由 songqi_z 于 2009-9-14 10:11 编辑

感谢afan热心、快的解答,谢谢了,
但如何增加ping 的行数,及时显示DOS窗口ping结果状态呢
发表于 2009-9-14 09:38:05 | 显示全部楼层
ping 的行数? 是什么意思? 再 ping 点别的?
发表于 2009-9-14 10:42:00 | 显示全部楼层
他的意思应该是一直回显ping的状态
 楼主| 发表于 2009-9-15 17:40:27 | 显示全部楼层
对,就是这样,如果照afan的解答,ping100个包等待的时间太长。
发表于 2009-9-15 18:50:11 | 显示全部楼层
建个Gui,弄个Edit控件,它就可以持续回显了~
Ping的内容过多可以另建txt文本一行行读取执行,或建个bat文件一次执行即可。
发表于 2010-12-11 23:31:22 | 显示全部楼层
使用ping函数,返回值就可以了
发表于 2011-3-30 11:54:00 | 显示全部楼层
好东西,谢谢分享。
发表于 2011-4-12 11:06:56 | 显示全部楼层
good example...3QQQQQQQQ
发表于 2011-12-4 01:17:42 | 显示全部楼层
gui 很难...
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-10-1 05:35 , Processed in 0.081963 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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