Board logo

标题: [网络连接] 多网卡的情况下批处理如何获取指定网卡的ip地址? [打印本页]

作者: chensjiu    时间: 2014-6-21 19:42     标题: 多网卡的情况下批处理如何获取指定网卡的ip地址?

在单网卡的情况下,获取IP地址的命令是for /f "tokens=15 usebackq" %%i in (`ipconfig/all ^| find /i "IP Address"`) do set ip=%%i

现在有“本地连接”和“本地连接2”两个网卡,分别设置了192.168.1.10和192.168.0.10两个IP地址。如果使用上述命令,获取到的地址第二个网卡的IP。

如何在命令里获取“本地连接”的IP地址??或者直接获取指定名称的网卡的IP地址呢??
作者: Batcher    时间: 2014-6-21 20:13

http://bbs.bathome.net/thread-9361-1-1.html
作者: 522235677    时间: 2014-6-22 00:05

本帖最后由 522235677 于 2014-6-22 00:09 编辑
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('ipconfig') do (
  3. set str=%%a
  4. set str=!str: =!
  5. if "!str:~-6!"=="本地连接2:" set a=1
  6. if "!str:~0,9!"=="IPAddress" if "!a!"=="1" (for /f "tokens=2 delims=:" %%b in ("!str!") do echo %%b&goto end)
  7. )
  8. :end
  9. pause
复制代码

作者: chensjiu    时间: 2014-6-22 12:11

三楼命令执行无结果。向二楼学习了
作者: 522235677    时间: 2014-6-22 13:50

回复 4# chensjiu


   不知道你怎么修改的,我自己测试都可以的
作者: chensjiu    时间: 2014-6-23 13:22

向二楼学习后自行修改了代码,已经成功运行在xp、2003和win2008上。

只获取本地连接的IP。如果本地连接有双IP,则获取本地连接的最后一个IP地址(在本地连接属性里显示为第一个IP)。
@echo off & setlocal enabledelayedexpansion
for /f "tokens=1,2 delims=:" %%a in ('ipconfig') do (
        if "%%a"=="Ethernet adapter 本地连接" set "flag=1"
        if "%%a"=="以太网适配器 本地连接" set "flag=1"
        if "!flag!"=="1" (if "%%a"=="        IP Address. . . . . . . . . . . . " set "ip=%%b")
        if "!flag!"=="1" (if "%%a"=="   IPv4 地址 . . . . . . . . . . . . " set "ip=%%b")
        if "%%a"=="        Default Gateway . . . . . . . . . " set flag=0
        if "%%a"=="   默认网关. . . . . . . . . . . . . " set flag=0       
)
echo IP=%ip%
pause
作者: PowerShell    时间: 2014-6-23 14:56

如果你有win8,及以上,可以用下述powershell命令:
  1. Get-NetAdapter -name 以太网 | Get-NetIPAddress
  2. Get-NetAdapter -name 本地连接 | Get-NetIPAddress
复制代码





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