找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 27940|回复: 6

[文本处理] 如何获取指定网络连接对应的IP地址

[复制链接]
发表于 2020-3-19 01:45:26 | 显示全部楼层 |阅读模式
参照
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相同,这要怎么处理,或是用别的代码
发表于 2020-3-19 10:34:46 | 显示全部楼层
  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位可以,高手来个通用的
发表于 2020-3-19 17:53:07 | 显示全部楼层

  1. # 可以试试。
  2. Get-NetIPConfiguration|%{$_.IPv4Address}|%{$_.InterfaceAlias+': '+$_.IPAddress}
复制代码
发表于 2020-3-19 20:46:42 | 显示全部楼层
回复 3# xczxczxcz


    需要注明 ps3.0以上
发表于 2020-3-19 22:37:59 | 显示全部楼层
  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
复制代码
 楼主| 发表于 2020-3-19 23:11:06 | 显示全部楼层
回复 3# xczxczxcz
没啥效果,报错
 楼主| 发表于 2020-3-19 23:12:05 | 显示全部楼层
flashercs 发表于 2020-3-19 22:37

也没啥用啊,显示
  1. No Instance(s) Available.
  2. "Ethernet0" 的 IPAddress=
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 14:44 , Processed in 0.018889 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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