嘟嘟社区

一个小代码,记录自己的IP变化历史


  1. $logFile = "C:pathtoyourip_log.txt"
  2. $checkInterval = 300  # 检查间隔,单位为秒(这里设置为5分钟)
  3. function Get-ExternalIP {
  4.     try {
  5.         $ip = Invoke-RestMethod -Uri ‘http://ipinfo.io/ip’
  6.         return $ip.Trim()
  7.     }
  8.     catch {
  9.         return $null
  10.     }
  11. }
  12. $lastIP = $null
  13. while ($true) {
  14.     $currentIP = Get-ExternalIP
  15.     $currentTime = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
  16.    
  17.     if ($currentIP -and ($currentIP -ne $lastIP)) {
  18.         $logMessage = "$currentTime – IP changed to: $currentIP"
  19.         Add-Content -Path $logFile -Value $logMessage
  20.         Write-Host $logMessage
  21.         $lastIP = $currentIP
  22.     }
  23.    
  24.     Start-Sleep -Seconds $checkInterval
  25. }

复制代码

使用PowerShell脚本来监测IP变化并记录到文本文档中。

一个简单的脚本示例,可以帮助您实现这个功能:

1、创建PowerShell脚本: 打开记事本,将以上内容复制粘贴进去:
2、保存文件: 将文件保存为 "MonitorIP.ps1"(或其他您喜欢的名称),确保文件扩展名是 .ps1。
3、修改脚本:
        将 $logFile = "C:pathtoyourip_log.txt" 中的路径改为您想要保存日志文件的实际路径。
        如果需要,可以调整 $checkInterval 的值来改变检查频率。
4、运行脚本:
        右键点击保存的 .ps1 文件。
        选择 "使用 PowerShell 运行"。
5、设置自动启动(可选): 如果您希望每次开机时自动运行此脚本:
        按 Win+R,输入 "shell:startup" 并回车。
        在打开的文件夹中,右键 > 新建 > 快捷方式。
        在位置栏输入:powershell.exe -ExecutionPolicy Bypass -File "C:pathtoyourMonitorIP.ps1"
        将 "C:pathtoyourMonitorIP.ps1" 替换为您实际保存脚本的路径。

注意事项:

这个脚本会持续运行并定期检查IP。如果您不希望它一直运行,可以手动关闭PowerShell窗口。
脚本使用 http://ipinfo.io 服务来获取外部IP。如果这个服务不可用,您可能需要更换为其他提供IP信息的服务。
确保您的防火墙或安全软件不会阻止脚本访问互联网。
如果遇到执行策略的问题,您可能需要以管理员身份运行PowerShell并执行 Set-ExecutionPolicy RemoteSigned 命令。
使用这个脚本,您就可以监测IP变化并将变化记录到指定的文本文件中了。每当IP发生变化时,新的IP地址和变化时间都会被记录下来。