Board logo

标题: [文本处理] 如何获取指定网络连接对应的IP地址 [打印本页]

作者: test    时间: 2020-3-19 01:45     标题: 如何获取指定网络连接对应的IP地址

参照
http://bbs.bathome.net/thread-32288-1-1.html
写了获取多网卡系统中指定网络连接对应的IP地址
  1. @echo off
  2. REM 设置网络适配器的名称
  3. REM 英文系统一般是:Local Area Connection
  4. REM set "AdapterName=Local Area Connection"
  5. REM 中文系统一般是:本地连接
  6. set "AdapterName=本地连接"
  7. set "WireName=无线网络连接"
  8. set "FileTmp=%temp%\ipList.txt"
  9. ipconfig /all >"%FileTmp%"
  10. for /f "delims=:" %%i in ('findstr /n /c:"%AdapterName%" "%FileTmp%"') do (
  11.     set "SkipRow=%%i"
  12.     goto :DoSkip
  13. )
  14. :DoSkip
  15. for /f "tokens=2 delims=:(" %%i in ('more +%SkipRow% "%FileTmp%" ^| findstr /v "IPv6" ^|findstr "IP"') do (
  16.     set "IP=%%i"
  17.     goto :ShowResult
  18. )
  19. :ShowResult
  20. for /f "delims=:" %%i in ('findstr /n /c:"%WireName%" "%FileTmp%"') do (
  21.     set "SkipRow1=%%i"
  22.     goto :1
  23. )
  24. :1
  25. for /f "tokens=2 delims=:(" %%i in ('more +%SkipRow1% "%FileTmp%" ^| findstr /v "IPv6" ^|findstr "IP"') do (
  26.     set "WIP=%%i"
  27.     goto :2
  28. )
  29. :2
  30. echo,%IP%
  31. echo,%WIP%
  32. pause
复制代码
问题来了,如果无线未连接时,无线IP也会显示,与有线IP相同,这要怎么处理,或是用别的代码
作者: testest    时间: 2020-3-19 10:34

  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "tokens=1 delims=[]" %%i in ('nbtstat -S^|find /n "本地连接:"') do (
  3.     nbtstat -S | more +%%i >$
  4.     set /p Str=<$
  5.     del $
  6.     for /f "tokens=2 delims=[]" %%i in ('echo "!Str!"') do set LIP=%%i
  7. )
  8. for /f "tokens=1 delims=[]" %%i in ('nbtstat -S^|find /n "无线网络连接:"') do (
  9.     nbtstat -S | more +%%i >$
  10.     set /p Str=<$
  11.     del $
  12.     for /f "tokens=2 delims=[]" %%i in ('echo "!Str!"') do set WIP=%%i
  13. )
  14. echo 本机有线IP为:%LIP%
  15. echo 本机无线IP为:%WIP%
  16. pause
复制代码
好像64位系统下不能运行,32位可以,高手来个通用的
作者: xczxczxcz    时间: 2020-3-19 17:53

  1. # 可以试试。
  2. Get-NetIPConfiguration|%{$_.IPv4Address}|%{$_.InterfaceAlias+': '+$_.IPAddress}
复制代码

作者: flashercs    时间: 2020-3-19 20:46

回复 3# xczxczxcz


    需要注明 ps3.0以上
作者: flashercs    时间: 2020-3-19 22:37

  1. @echo off
  2. REM 设置网络连接名称
  3. set "NetConnectionID=Ethernet0"
  4. set IPAddress=
  5. for /f "tokens=1" %%A in ('wmic nic where "NetConnectionID='%NetConnectionID%'" assoc:list /resultclass:win32_networkadapterconfiguration^|find /i "ipaddress="') do set %%A
  6. echo."%NetConnectionID%" 的 IPAddress=%IPAddress%
  7. pause
  8. exit /b
复制代码

作者: test    时间: 2020-3-19 23:11

回复 3# xczxczxcz
没啥效果,报错
作者: test    时间: 2020-3-19 23:12

flashercs 发表于 2020-3-19 22:37

也没啥用啊,显示
  1. No Instance(s) Available.
  2. "Ethernet0" 的 IPAddress=
复制代码





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