【问题标题】:PHP malformed IP address and host. What is this?PHP 格式错误的 IP 地址和主机。这是什么?
【发布时间】:2014-11-22 00:42:36
【问题描述】:

我通过为每个下载添加一个包含下载者的 IP 地址和主机的数据库条目来跟踪我的网站的下载。

我使用这个 PHP 代码来检索 IP 地址

isset($_SERVER["HTTP_X_FORWARDED_FOR"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"]

和带有PHP函数gethostbyaddr的主机,传递IP地址。

多年来一直运行良好,直到发生了奇怪的事情:

今天看到两个下载入口,IP地址和主机都是2a02:2028:1aa:2dc1:854e:9ccc:b423:7c93

Domaintools 说这是一个“格式错误的域或 IP”。

谁能告诉我那是什么东西以及为什么它的格式不正确?

我不认为它是机器人什么的,因为我的东西只能被真人下载,所以我真的很困惑?!

【问题讨论】:

  • HTTP_X_FORWARDED_FOR 标头可以手动更改,REMOTE_ADDR 不能。
  • 使用代理或 TOR 将更改 REMOTE_ADDR 就好了。在这种情况下,@OliverCharlesworth 是绝对正确的。它只是一个 IPv6 地址,无需担心。
  • 您不能将REMOTE_ADDR 更改为您想要的任何内容吗?它始终是一个 IP 地址,HTTP_X_FORWARDED_FOR 可以更改为您想要的任何字符串。
  • 它应该包含一个IP地址是的。我确信规则有例外(被黑的 PHP 服务器),但通常可以安全地假设里面有一个 IP 地址。但这并不意味着你不能改变它。

标签: php ip ip-address malformed gethostbyaddr


【解决方案1】:
  1. 不是格式错误。
  2. 这是一个IPv6 地址。
  3. 可能有人通过隧道或代理从其 IPv6 网络进入 IPv4 互联网。
  4. DomainTools 似乎不支持 IPv6,或者至少不是您使用的工具,而是 this one is

【讨论】:

    猜你喜欢
    • 2022-01-02
    • 2014-08-19
    • 2021-01-18
    • 2014-04-12
    • 2016-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    相关资源
    最近更新 更多