1

我有一个运行 PHP 软件的专用网络服务器,它需要自动收集和更新我的几个 Windows 和可能具有动态 IP 的 Linux 机器的 IP(与 no-ip.com 客户端的想法大致相同)。我认为最简单的做法是在每台机器上运行一个服务,它只是从网络服务器中提取一个唯一的 URL,然后可以查找客户端 IP 并将其与 URL 等匹配。

    $_SERVER["HTTP_CLIENT_IP"]

构建客户端服务的最佳语言/库/环境是什么,它可以通过轻松访问机器的外部 IP 发出 URL 请求(检查动态 IP 的更改以免淹没网络服务器)?它不需要什么花哨的东西,它甚至不需要从服务器读取任何东西,它只需要发出 URL 请求。

除了 Web 编程之外,我还有一些 Python 和 C 以及其他一些方面的经验。我可以阅读有关该主题的任何指针或资源将不胜感激。还有,我是不是想多了?谢谢

4

3 回答 3

2

您可以编写一个带有 wget 调用的 shell 脚本,然后在循环中休眠。

wget 执行 http 请求,它适用于 windows,并且已经安装在所有/一些 unix 机器上。

于 2012-04-15T10:48:59.643 回答
1

机械化对于在 Python 中发出 URL 请求来说太过分了。这真的很容易:

from urllib2 import urlopen
urlopen("my://url").read()

第一行可能因您的 Python 版本而异(例如,它urllib.request在 Python 3 中。)

那里有数百种“我的 IP 是什么”服务;或者你甚至可以自己写!将其中之一插入读取的 URL 以获取 IP。您必须轮询才能确定它何时发生变化,因为您无法在路由器上运行代码。

于 2012-04-15T10:53:11.520 回答
0

如果您已经有某种方法来进行 URL 请求,请每 10 分钟向此页面执行一次:

http://checkip.dyndns.org/Current%20IP%20Check.htm

它会告诉你“当前 IP 地址:XXX.XXX.XXX.XXX”,你只需要提取一些字符串数据。

(你只会淹没 whatsmyip 网络服务器,而不是你自己的!)

乐意效劳

自我记录

于 2012-04-15T07:42:30.953 回答