使用 curl 和 batch 记录日期和外部 IP 地址(Windows)

使用 curl 和 batch 记录日期和外部 IP 地址(Windows)

我遇到了一个奇怪的问题,我的外部 IP 每隔 2、3 分钟就会更改一次。

我有一个动态 DNS 服务,我通过批处理文件中调用的 curl 任务调度程序来更新它。

我正在调试该过程,为此我需要将日期和时间以及 CURL 的每个响应记录(附加)到文件中。

我可以回显到文件,但不知道如何附加日期/时间和 curl 响应。

环境是ws2012。

提前致谢!以下是我目前掌握的代码片段

curl -k http://freedns.afraid.org/dynamic/update.php?xdfSDASDQW232FFD
ECHO I ran! I really did! >c:\TestBat.log

答案1

批量解决方案,附加到日志文件。更改>>>以覆盖:

@echo off
set logfile=.\curl.log

echo [ %date% %time% ]>>%logfile%
curl -s -k http://freedns.afraid.org/dynamic/update.php?xdfSDASDQW232FFD>>%logfile%

答案2

我建议完全跳过 curl,改用 Powershell,因为这是原生 WS 技术,也可用于发送 HTTP POST。这里有一个简单的两行代码,将您的外部 IP 和当前时间记录到文件 C:\temp\debuglog.txt:

$response = Invoke-WebRequest -UseBasicParsing -Uri http://icanhazip.com -Method get
"{0};{1}" -f $response.content.trim(), (get-date -format u) | out-file -filepath 'C:\temp\debuglog.txt' -append

将其放入以 .ps1 结尾的文件中并通过任务计划程序运行它:

Program: powershell
Arguments: -executionpolicy bypass C:\temp\debugscript.ps1

相关内容