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