如何将公共IP地址获取到Windows批处理文件变量中?

问题描述 投票:0回答:1

如何将公共 IP 地址放入 Windows 批处理文件 (

*.bat
,
*.cmd
) 变量中?

下面是一个类似的 PowerShell 命令,显示公共 IP 地址:

$ip = Invoke-RestMethod -Uri 'https://api.ipify.org?format=json'
"My public IP address is: $($ip.ip)"

如果您使用网络浏览器访问此 URL

https://api.ipify.org
,您的公共 IP 将以纯文本形式显示。 我想将此地址放入 Windows 批处理变量(而不是 PowerShell 变量)中。

windows powershell batch-file
1个回答
0
投票

无法真正访问那个

api.ipify.org
网站,但我猜这个任务本质上是访问一个响应json的URL,并从中获取一个字段。这是在批处理脚本中使用
curl
和常见字符串拆分和匹配技术的示例。您可能需要调整
tokens
以匹配响应顺序。我使用本地 REST 服务之一进行了测试,效果很好。

@echo off
FOR /F "tokens=2 delims=:{}" %%A IN ('curl -s "https://api.ipify.org?format=json" ^| findstr "ip"') DO SET IP=%%A

SET IP=%IP:"=%

echo %IP%

pause

话虽这么说,这纯粹是痛苦,而且该方法肯定不稳健。从批处理中调用 powershell 是一种选择吗?就像这个问题中的接受的答案

© www.soinside.com 2019 - 2024. All rights reserved.