【发布时间】:2014-03-21 12:53:07
【问题描述】:
我有一个 PHP 脚本,它作为 cron 任务从我们服务器的非公开访问目录运行。该脚本将 cURL POST 发送到可公开访问的 URL。
我使用 .htaccess 文件设置接收 URL,该文件拒绝来自除我允许的 IP 地址之外的任何 IP 地址的访问。我运行了一个 PHP 脚本,通过电子邮件将file_get_contents("http://www.whatismyipaddress.com"); 的输出发送给我,以获取我的服务器的原始 IP 地址(它是一个专用服务器,所以我不希望它改变)。这是我在 .htaccess 文件中允许的 IP。
但是当我通过 SSH 提示符运行脚本时,所有 POST 都返回 403 Forbidden 错误。当我注释掉 .htaccess 保护时,POST 成功了。
然后我查看了我的日志文件,结果发现 POST 来自与我的file_get_contents() 报告的 IP 不同的 IP。将该 IP 添加到 .htaccess 文件中很容易,从而解决了问题。
但我对为什么有两个不同的源 IP 地址感到困惑。任何人都可以对这个主题有所了解吗?
【问题讨论】: