本帖最后由 Love0912 于 2024-11-15 08:41 编辑
先看代码
[Asm] 纯文本查看 复制代码 @echo off
setlocal
echo 正在获取 IP 地址...
for /f "delims=" %%i in ('curl -s [url]https://myip.ipip.net/'[/url]) do (
echo %%i | findstr /r "[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*" >nul
set "IP=%%i"
goto :break
)
:break
echo 您的外网IP地址是: %IP%
pause
我想要达到的效果是,像下方图片中这样把信息全部显示出来,最次结果是只显示IP地址也可以(如果是只显示IP地址就屏蔽掉其它的所有信息 免得影响观看)
但是现在的问题是,可以成功获取到信息,但是有部分信息显示乱码,单独获取IP地址的代码可能是有BUG 一直不能成功落地。。 大概就是下面这个样子的了
-------------------------------------------------------------
感谢各位大佬的帮助,这个问题得到了解决,下面是我修正后的代码,可以完美显示了,有类似问题的可以参考一下,下面评论区也有非常好的解决方案,可以自己翻
[Asm] 纯文本查看 复制代码 @echo off
setlocal enabledelayedexpansion
chcp 65001 >nul
cls
rem 获取IP地址
for /f "tokens=2 delims=: " %%i in ('curl -s [url]https://myip.ipip.net/'[/url]) do (
set "IP=%%i"
)
for /f "tokens=3,* delims=: " %%i in ('curl -s [url]https://myip.ipip.net/'[/url]) do (
set "gs=%%i %%j"
)
rem 输出IP地址
if defined IP (
echo 您的外网: !IP!
echo 您的归属地 !gs!
) else (
echo 无法获取外网IP地址
)
pause
|