【问题标题】:PHP - IP Canonicalization testPHP - IP 规范化测试
【发布时间】:2017-04-09 01:29:39
【问题描述】:

这是获取站点IP的代码

$ip = gethostbyname(parse_url('http://www.wikipedia.com', PHP_URL_HOST));
print_r($ip);

但是,用 php 检查网站的 IP 是否重定向到网站域的正确方法是什么?

编辑: 我的第一个问题似乎还不够清楚。该问题基于 seositecheckup.com 测试。那里的警告之一说:

IP 规范化测试
您站点的 IP 198.35.26.96 不会重定向到您站点的域名。如果搜索引擎在其 IP 和域名下为您的网站编制索引,这可能会导致内容重复问题。

所以,我问我如何自己检查网站的 IP 是否重定向到网站的域,在 PHP 中

【问题讨论】:

  • 可能其他人会有其他想法,但我认为您需要使用 CURL 函数来检查响应标头。快速搜索“卷曲响应标头”和...stackoverflow.com/questions/9183178/…
  • @DuaneLortie 所以你是说检查 IP 的标头还是?
  • 我不太确定你想做什么
  • 为了确保域名和 IP 产生相同的内容。我会通过 curl 获取域名,检查重定向,如果响应为 200,则对该内容进行校验和,然后对 IP 做同样的事情。我不知道除 w/CURL 之外的任何其他方法来检测 301/302 重定向
  • 我编辑了我的问题以便更清楚

标签: php redirect ip canonicalization


【解决方案1】:

问题说明一件事,但代码暗示另一件事......

  • 如果您要查找 IP 到主机名,还有另一个功能:gethostbyaddr()
  • 如果您说的确实是“重定向”,则必须使用 HTTP 客户端库(如 cURL)来查看 http://ipAddress/ 是否返回 30x 状态代码和 Location 标头指向基于主机名的 URL。

【讨论】:

  • 我可以用 get_headers 而不是 curl 吗?
  • 是的,这可能是最简单的方法。
【解决方案2】:

您正在尝试做的是反向 IP 查找。

gethostbyname 执行正向 IP 地址,gethostbyaddr 执行反向 IP 查找。

一个代码示例是:

$ip = gethostbyname(parse_url('http://www.wikipedia.com', PHP_URL_HOST));
print_r($ip);
$domain = gethostbyaddr($ip);
print_r($domain);

【讨论】:

  • 这将输出:text-lb.esams.wikimedia.org
猜你喜欢
  • 2016-05-07
  • 1970-01-01
  • 1970-01-01
  • 2015-05-26
  • 1970-01-01
  • 1970-01-01
  • 2013-06-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多