$checkInterval = 300 # 检查间隔,单位为秒(这里设置为5分钟)
function Get-ExternalIP {
try {
$ip = Invoke-RestMethod -Uri 'http://ipinfo.io/ip'
return $ip.Trim()
}
catch {
return $null
}
}
$lastIP = $null
while ($true) {
$currentIP = Get-ExternalIP
$currentTime = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
if ($currentIP -and ($currentIP -ne $lastIP)) {
$logMessage = "$currentTime - IP changed to: $currentIP"
Add-Content -Path $logFile -Value $logMessage
Write-Host $logMessage
$lastIP = $currentIP
}
Start-Sleep -Seconds $checkInterval
}[/ol]复制代码
使用PowerShell脚本来监测IP变化并记录到文本文档中。
一个简单的脚本示例,可以帮助您实现这个功能:
1、创建PowerShell脚本: 打开记事本,将以上内容复制粘贴进去:
2、保存文件: 将文件保存为 "MonitorIP.ps1"(或其他您喜欢的名称),确保文件扩展名是 .ps1。
3、修改脚本:
将 $logFile = "C:\path\to\your\ip_log.txt" 中的路径改为您想要保存日志文件的实际路径。
如果需要,可以调整 $checkInterval 的值来改变检查频率。
4、运行脚本:
右键点击保存的 .ps1 文件。
选择 "使用 PowerShell 运行"。
5、设置自动启动(可选): 如果您希望每次开机时自动运行此脚本:
按 Win+R,输入 "shell:startup" 并回车。
在打开的文件夹中,右键 > 新建 > 快捷方式。
在位置栏输入:powershell.exe -ExecutionPolicy Bypass -File "C:\path\to\your\MonitorIP.ps1"
将 "C:\path\to\your\MonitorIP.ps1" 替换为您实际保存脚本的路径。
注意事项:
这个脚本会持续运行并定期检查IP。如果您不希望它一直运行,可以手动关闭PowerShell窗口。
脚本使用 http://ipinfo.io 服务来获取外部IP。如果这个服务不可用,您可能需要更换为其他提供IP信息的服务。
确保您的防火墙或安全软件不会阻止脚本访问互联网。
如果遇到执行策略的问题,您可能需要以管理员身份运行PowerShell并执行 Set-ExecutionPolicy RemoteSigned 命令。
使用这个脚本,您就可以监测IP变化并将变化记录到指定的文本文件中了。每当IP发生变化时,新的IP地址和变化时间都会被记录下来。