标题: [其他] 批处理如何辨认ipv4和ipv6的地址,并抓取ip地址? [打印本页]
作者: a87750530 时间: 2011-7-8 15:19 标题: 批处理如何辨认ipv4和ipv6的地址,并抓取ip地址?
想写一个批处理ping自己的拨号上网ip,如果出现断网就自动关机,,代码如下- echo.xp 系统下的
- for /f "tokens=2 delims=:" %%a in ('ipconfig^|find /i "ip"') do set ip=%%a
- call echo.%%ip: =%%
- goto :xpeip4begin
-
- :xpeip4begin
- echo. 您的ip是:%ip%
- ping -n 60 %ip% >nul
- if "%errorlevel%"=="0" (cls & echo 网络通畅,电脑将继续运行) else (echo 网络断开,电脑将在一分钟后关机 & goto xpe4shutdown)
- goto :xpeip4begin
-
- echo. windows7下的
- for /f "tokens=2 delims=:" %%a in ('ipconfig^|find /i "ipv4"') do set ipv4=%%a
- call echo.%%ipv4: =%%
- goto :wp7ip6begin
-
- :wp7ip6begin
- echo. 您的ipv4是:%ip%
- ping -n 60 %ipv4% >nul
- if "%errorlevel%"=="0" (cls & echo 网络通畅,电脑将继续运行) else (echo 网络断开,电脑将在一分钟后关机 & goto xpe4shutdown)
- goto :wp7ip6begin
- :xpe4shutdown
- shutdown -s -f -t 60
- pause >nul
- goto end
复制代码
问题1:上面的代码ipv4(windows 7)的情况下可以用,windows xp ipv4的情况下可用,windows xp如果开启ipv6的话就不认地址了。
问题2:批处理怎么辨别ipv4 和ipv6地址
问题3:怎么抓取ipv6的地址,然后ping得通自己的ip并关机。
请大家帮帮忙!
作者: lxzzr 时间: 2011-7-8 15:50
想写一个批处理ping自己的拨号上网ip,如果出现断网就自动关机
如果出现断网就自动关机,可以这样:- Dim WSH, WMI, EVN
- Set WSH = CreateObject("Wscript.Shell")
- Set WMI = GetObject("winmgmts:\\.\root\wmi")
- Set EVN = WMI.ExecNotificationQuery("Select * from MSNdis_StatusMediaDisconnect")
- Do While True
- Set LatestEvent = EVN.NextEvent
- WSH.Run("shutdown -s -t 0")
- Loop
复制代码
作者: a87750530 时间: 2011-7-8 15:59
回复2楼版主,你给的代码不能运行 dim不是内部命令,wsh.run 不是内部命令
作者: ArdentMan 时间: 2011-7-8 22:12
3# a87750530
版主给的是vbs代码你存为test.vbs运行哈
作者: a87750530 时间: 2011-7-9 10:35
发现这段代码在ipv6下还是可以搞定的,就是不知道怎么用批处理区分ipv4和ipv6的地址
这段代码主要针对xp系统- @echo off
- for /f "tokens=15" %%i in ('ipconfig ^| find /i "ip address"') do set ip=%%i
- echo 你的IP是%ip%
- ping %ip% -t
- pause >nul
- goto net
复制代码
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |