在命令行中查找IP

时间:2015-12-31 06:02:34

标签: windows command-line

是否可以通过离开其他适配器在命令行中找到我的设备的连接IP地址。我使用了ipconfig,ipconfig / all,但它显示了媒体状态为Disconnected的所有适配器。    我想在命令行中仅显示媒体连接的IP地址。窗户有什么办法吗?

2 个答案:

答案 0 :(得分:1)

@ECHO OFF
SETLOCAL
SET "items="
SET "notitems="
FOR /f "delims=" %%a IN ('ipconfig') DO SET "line=%%a"&CALL :record
SET "line="
FOR /f "delims=" %%a IN ('ipconfig') DO (
 ECHO :%items%:|FIND ":%%a:" >NUL
 IF NOT ERRORLEVEL 1 SET "line=Y"
 IF DEFINED notitems (
  ECHO :%notitems%:|FIND ":%%a:" >NUL
  IF NOT ERRORLEVEL 1 SET "line="
 )
 IF DEFINED line ECHO %%a
)
GOTO :EOF

:record
:: items begin in col 1 and end with ":"
IF "%line:~0,1%" equ " " GOTO notitem
IF "%line:~-1%" neq ":" GOTO notitem
SET "items=:%line%%items%"
SET "lastitem=%line%"

GOTO :eof

:notitem
IF "%line:~-18%"=="Media disconnected" SET "notitems=:%lastitem%%notitems%"
GOTO :EOF 

这应该会告诉你你想要的东西 - 一个例子会有所帮助。

使用ipconfig项目的每个报告都以itemname:开头,从第一列开始。

您似乎希望取消media disconnected项,因此对于以空格开头的行(或不以:结尾的行,请查看最后18个字符是否与字符串{Media disconnected匹配1}}。

在检测到项目时,在items中记录通过相应测试的每个字符串;如果不报告该项目,则记录notitems。用冒号包围每个,因此结果是以冒号分隔的列表。

然后再次浏览ipconfig。如果检测到某个项目,请将line设置为Y(这样报告就会打开),但如果该项目位于notitems列表中,请设置line(现在正在行动)作为报告开关) nothing

结果:检测到项目时将开启报告,并在检测到非项目时再次关闭。

答案 1 :(得分:0)

试试netstat -n。它给出了当前连接的列表。您可以找到使用的IP地址。