使用批量查找 IP

使用批量查找 IP

我需要使用某种命令来查找批处理文件用户的外部 IP。我尝试了很多方法,但我需要批处理文件将 IP 识别为某种变量,以便可以使用它。有人能回答吗

答案1

我从来不知道 BITSAdmin。

但我在手册中发现了这一点:

BITSAdmin 已被弃用,并且不保证在未来版本的 Windows 中可用。

您也可以在没有 BITSadmin 的情况下完成此操作(并借助 powershell 的一点帮助):

@echo off
set ip=
powershell.exe -Command (New-Object net.webclient).downloadstring('http://myexternalip.com/raw') > tempfile
set /p ip=<tempfile
del tempfile
echo %ip%

您也可以不使用临时文件来执行此操作(但这样会变得有点复杂)

编辑
这是没有临时文件的版本:

@echo off
set ip=
for /f "delims=" %%a in ('powershell.exe -Command ^(New-Object net.webclient^).downloadstring^('http://myexternalip.com/raw'^)') do @set ip=%%a
echo %ip%

編輯2
我对速度不太满意。
下面是一个速度快得多的版本(几乎是即时的):

@echo off
set ip=
for /f "tokens=2 delims= " %%a in ('%windir%\system32\nslookup myip.opendns.com resolver1.opendns.com 2^> nul ^| find "Address" ^| find ^/V "208.67.222.222"') do set ip=%%a
echo %ip%

相关内容