[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[网络连接] 多网卡的情况下批处理如何获取指定网卡的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地址呢??

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 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
复制代码

TOP

三楼命令执行无结果。向二楼学习了

TOP

回复 4# chensjiu


   不知道你怎么修改的,我自己测试都可以的

TOP

向二楼学习后自行修改了代码,已经成功运行在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

TOP

如果你有win8,及以上,可以用下述powershell命令:
  1. Get-NetAdapter -name 以太网 | Get-NetIPAddress
  2. Get-NetAdapter -name 本地连接 | Get-NetIPAddress
复制代码
脚本是写给人看的,是写给用户看的,而不是写给机子看的
用户能看懂、会修改的脚本,才是好脚本。
写易懂的powershell脚本帮人解决问题,进而让用户学会自渔,吾所愿也

TOP

返回列表