Board logo

标题: [网络连接] 怎样写个WIN7的ip地址显示的批处理? [打印本页]

作者: cl27047    时间: 2011-9-27 14:24     标题: 怎样写个WIN7的ip地址显示的批处理?

我的win7用的宽带连接上网,ipconfig /all 的输出为:


Windows IP 配置

   主机名  . . . . . . . . . . . . . : Dragon-PC
   主 DNS 后缀 . . . . . . . . . . . :
   节点类型  . . . . . . . . . . . . : 混合
   IP 路由已启用 . . . . . . . . . . : 否
   WINS 代理已启用 . . . . . . . . . : 否

PPP 适配器 宽带连接:

   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : 宽带连接
   物理地址. . . . . . . . . . . . . :
   DHCP 已启用 . . . . . . . . . . . : 否
   自动配置已启用. . . . . . . . . . : 是
   IPv4 地址 . . . . . . . . . . . . : **.51.56.200(首选)
   子网掩码  . . . . . . . . . . . . : 255.255.255.255
   默认网关. . . . . . . . . . . . . : 0.0.0.0
   DNS 服务器  . . . . . . . . . . . :**.51.78.210
                                       ***.246.129.80
   TCPIP 上的 NetBIOS  . . . . . . . : 已禁用

以太网适配器 本地连接:

   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Realtek RTL8168D/8111D 系列 PCI-E 千兆以太网 NIC (NDIS 6.20)
   物理地址. . . . . . . . . . . . . : 00-0B-2F-66-D5-63
   DHCP 已启用 . . . . . . . . . . . : 否
   自动配置已启用. . . . . . . . . . : 是
   本地链接 IPv6 地址. . . . . . . . : fe80::e879:c513:2440:6549%11(首选)
   IPv4 地址 . . . . . . . . . . . . : 192.168.1.9(首选)
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . :
   DHCPv6 IAID . . . . . . . . . . . : 234883887
   DHCPv6 客户端 DUID  . . . . . . . : 00-01-00-01-16-10-F2-FF-00-0B-2F-66-D5-63
   DNS 服务器  . . . . . . . . . . . : 8.8.8.8
   TCPIP 上的 NetBIOS  . . . . . . . : 已启用

隧道适配器 isatap.{69894DEA-27C0-43B1-A4C7-7FA4AF46914A}:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Microsoft ISATAP Adapter
   物理地址. . . . . . . . . . . . . : 00-00-00-00-00-00-00-E0
   DHCP 已启用 . . . . . . . . . . . : 否
   自动配置已启用. . . . . . . . . . : 是

隧道适配器 isatap.{C5488712-60E5-4305-8EAF-D524CE1E9080}:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Microsoft ISATAP Adapter #2
   物理地址. . . . . . . . . . . . . : 00-00-00-00-00-00-00-E0
   DHCP 已启用 . . . . . . . . . . . : 否
   自动配置已启用. . . . . . . . . . : 是

隧道适配器 6TO4 Adapter:

   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Microsoft 6to4 Adapter
   物理地址. . . . . . . . . . . . . : 00-00-00-00-00-00-00-E0
   DHCP 已启用 . . . . . . . . . . . : 否
   自动配置已启用. . . . . . . . . . : 是
   IPv6 地址 . . . . . . . . . . . . : 2002:3b33:38c8::3b33:38c8(首选)
   默认网关. . . . . . . . . . . . . : 2002:c058:6301::c058:6301
   DNS 服务器  . . . . . . . . . . . : **.51.78.210
                                       ***.246.129.80
   TCPIP 上的 NetBIOS  . . . . . . . : 已禁用

隧道适配器 Teredo Tunneling Pseudo-Interface:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Teredo Tunneling Pseudo-Interface
   物理地址. . . . . . . . . . . . . : 00-00-00-00-00-00-00-E0
   DHCP 已启用 . . . . . . . . . . . : 否
   自动配置已启用. . . . . . . . . . : 是

我想求高手能否写个批处理,通过读取ipconfig /all 的输出,然后可以显示宽带连接的ip(外网),先谢过了!
作者: awk    时间: 2011-9-27 16:35

  1. @echo off
  2. ipconfig /all>"%temp%\ipList.txt"
  3. for /f "tokens=1 delims=:" %%a in ('findstr /n "宽带连接:" "%temp%\ipList.txt"') do (
  4.     set SkipRow=%%a
  5.     goto :MySkip
  6. )
  7. :MySkip
  8. for /f "usebackq skip=%SkipRow% tokens=1,16" %%a in ("%temp%\ipList.txt") do (
  9.     if "%%a" equ "IPv4" (
  10.         set IP=%%b
  11.         goto :ShowResult
  12.     )
  13. )
  14. :ShowResult
  15. echo,%IP%
  16. pause
复制代码

作者: cl27047    时间: 2011-9-27 19:14

awk 发表于 2011-9-27 16:35


恩  代码是不错 解决了IP显示的问题,谢谢大大了。
不过我想问下,有没有用for命令一次完成的可能,还有就是不输出    %temp%\ipList.txt  文件,如果能达到这两个要求,那就太好了。
作者: awk    时间: 2011-9-27 22:07

回复 3# cl27047
  1. @echo off
  2. for /f "tokens=1 delims=:" %%a in ('ipconfig /all ^| findstr /n "宽带连接:"') do (
  3.     set SkipRow=%%a
  4.     goto :MySkip
  5. )
  6. :MySkip
  7. for /f "skip=%SkipRow% tokens=1,16" %%a in ('ipconfig /all') do (
  8.     if "%%a" equ "IPv4" (
  9.         set IP=%%b
  10.         goto :ShowResult
  11.     )
  12. )
  13. :ShowResult
  14. echo,%IP%
  15. pause
复制代码

作者: Hello123World    时间: 2011-9-29 13:13

  1. @echo off
  2. echo 正在连接,请稍等...
  3. >Getip.vbs echo Set oDOM=WScript.GetObject("http://www.ip138.com/ip2city.asp"):Do Until oDOM.readyState="complete":WScript.sleep 200:Loop:WScript.echo oDOM.documentElement.outerText:Set oDOM=nothing
  4. for /f "tokens=2 delims=[]" %%i in ('"cscript //nologo Getip.vbs"') do echo 你的外网 IP 是: %%i
  5. del Getip.vbs
  6. pause
复制代码
显示外网ip




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2