检查动态 IP 更改的最简单方法

Sil*_*ier 14 networking centos script dynamic-ip ip

如果我的 IP 地址已更改,使用脚本查找的最简单方法是什么?


背景资料:

我有一个标准的家用电缆调制解调器连接,我的 ISP 为我分配了一个动态 IP。它不时发生变化,DHCP 租用时间似乎不规则。

基本上,我正在做我自己的动态 DNS 事情,并且可以通过单击更新指向我的家庭服务器的 DNS 记录。剩下的唯一事情就是检测 IP 更改,以便我可以完全自动化该过程。

现在这里有几个网站可以返回您的 IP 地址,我可以使用 cron 作业到wget这些页面之一并grep从中获取 IP 地址......但就 CPU / 带宽使用而言,这似乎有点过分,而且不是很吻。

我是否缺少一些简单而优雅的方法来检索我的公共 IP 并检查它是否已更改?

额外信息:我的调制解调器/路由器是一块便宜的砖,在这方面没有什么特别有趣的。我的服务器运行 Centos 6。

Mar*_*mas 7

假设您在 NAT 后面,我能想到的最优雅的方法是在路由器本身上运行 cron 作业,定期检查ifconfig也检查其当前的 WAN 地址。如果您能够安装自定义固件,这甚至可以在“廉价砖”上实现。然而优雅,并不简单。

正如此处所讨论的,在 Windows 上,但该论点对于 Centos 同样有效,在从 NAT 后面轮询 WAN IP 时,您会遇到技术上没有外部地址的问题。相反,您将根据路由器的判断通过一个路由。显然,只要路由器在您的控制之下,您仍然可以访问这些信息,但是没有通用的方式将此 IP 地址传送到本地网络上的主机。因此,您的服务器不能简单地向路由器询问它将使用的外部 IP。

最有效的替代方法是让路由器发挥它的魔力并实际连接到外部服务器,然后要求它返回请求源自的地址。许多网络服务器专门为此目的而设置。对于脚本编写,我可以推荐http://icanhazip.com/,因为它不需要您进一步解析(仅以纯文本形式返回 IP)。

如有必要,之前链接的问题的答案应该提供大量实施技巧。

  • 还有 http://ifconfig.me/ip 和 https://wtfismyip.com/text (2认同)

Den*_*nis 6

您可以查询任何显示您的 IP 的网站以完成此任务。使用checkip.dyndns.com,因为它是 text.only。

例子:

wget -q -O - checkip.dyndns.com | grep -Po "[\d\.]+"
Run Code Online (Sandbox Code Playgroud)