标题: [网络连接] 多网卡的情况下批处理如何获取指定网卡的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 编辑
- @echo off & setlocal enabledelayedexpansion
-
- for /f "delims=" %%a in ('ipconfig') do (
- set str=%%a
- set str=!str: =!
- if "!str:~-6!"=="本地连接2:" set a=1
- if "!str:~0,9!"=="IPAddress" if "!a!"=="1" (for /f "tokens=2 delims=:" %%b in ("!str!") do echo %%b&goto end)
- )
- :end
- 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命令:- Get-NetAdapter -name 以太网 | Get-NetIPAddress
- Get-NetAdapter -name 本地连接 | Get-NetIPAddress
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |