有什么方法可以通过命令提示符来执行此操作,而不使用任何第三方软件或依赖 powershell?
一个简单的命令就很好了,就像在 Linux/Mac 上一样,我使用
curl http://ipinfo.io/ip
。
谢谢!
最简单的方法和跨平台解决方案(Mac、Windows 和 Linux)
curl "http://myexternalip.com/raw"
& 您将获得公共 IPV4。
您可以在 Windows 和 Linux 中使用这些命令
curl ifconfig.me
Curl是升级到最新版本时Windows内置的东西,所以不称为第三方软件。
或
curl ifconfig.co
在 Linux 中,几乎发行版已经有了这个命令。
非常感谢ArthurG您的命令。它运行完美,可以通过多种方式用于批处理脚本。
curl ip-adresim.app
它同时支持 IPv4 和 IPv6。
在正常的 dos 批处理中尝试这个
@echo off
nslookup myip.opendns.com resolver1.opendns.com | find "Address" >"%temp%\test1.txt"
more +1 "%temp%\test1.txt" >"%temp%\test2.txt"
set /p MyIP=<%temp%\test2.txt
del %temp%\test2.txt
set MyIP=%MyIP:~10%
echo %MyIP%
现在,%MyIP%将可以回显或用作变量以供额外的批量使用。
这个命令对我有用:
nslookup myip.opendns.com. resolver1.opendns.com
Oneliner,没有curl或powershell,只有裸露的CMD,IP4的原始IP
FOR /f "skip=1 tokens=2 delims=:\ " %G IN ('nslookup myip.opendns.com resolver1.opendns.com 2^>^&1 ^|find "dress"') DO @echo %G
实际上,您可以在 Linux 和 Windows 中使用相同的命令:
curl http://ipinfo.io/ip
我将它用作批处理文件的一部分,如下所示:
FOR /F "tokens=* USEBACKQ" %%F IN (`curl http://ipinfo.io/ip`) DO (
SET currentip=%%F
)
ECHO %currentip%
Windows/Linux 版本:
nslookup myip.opendns.com resolver1.opendns.com
Unix版本:
dig +short myip.opendns.com @resolver1.opendns.com
这对我来说非常有效:
curl http://ip.jsontest.com/ > ip.json
for /f "tokens=2 delims=:" %%a in ('type ip.json') do (set publicip=%%a)
set publicip=%publicip:{=%
set publicip=%publicip:}=%
set publicip=%publicip:"=%
echo %publicip:~1%