【问题标题】:Absolute IP address of iPads?iPad的绝对IP地址?
【发布时间】:2012-02-22 05:47:44
【问题描述】:

我有一个 php 页面,学校的学生正在通过他们的 iPad 登录。我需要在此过程中记录他们的 IP 地址(以便为学校保存记录),但他们都具有与该方法相同的 IP 地址我正在使用:

if (getenv(HTTP_X_FORWARDED_FOR)) {
    $ipaddress = getenv(HTTP_X_FORWARDED_FOR);
} else {
    $ipaddress = getenv(REMOTE_ADDR);
}

对于每台 iPad,我可以获得哪些更深入的 IP 地址?

【问题讨论】:

  • 引用你的字符串! getenv('HTTP_X_FORWARDED_FOR')HTTP_X_FORWARDED_FOR 不是一个常数(或者至少我怀疑它是)。
  • 通过记录 IP 地址,您可以获得什么?
  • 当学生滥用他们的 iPad 并且我们知道 iPad 滥用系统的 IP 地址时,我们可以知道它是哪个学生..
  • 你能详细说明“滥用”吗?这发生在他们登录后,还是应用程序的面向公众的部分?

标签: php ipad ip ip-address unique


【解决方案1】:

这就是网络的现实。您可以获得的唯一经过验证的地址是$_SERVER['REMOTE-ADDR'],因为这是在 TCP/IP 握手中协商的地址。这个地址可能只是路由器、代理、NAT 设备或其他您无法“看到”的地址。 HTTP 标头中的任何其他内容都是完全无法证明、不可靠且易于欺骗的。

无法保证或期望 IP 地址是唯一的或“真实的”,除非您完全控制并完全了解客户端和服务器之间的网络。

这是因为基于 IP 的分组交换网络旨在将数据从网络上的一个节点可靠地传送到另一个节点。 IP 地址是其中的一个实现细节。两者都不是为了唯一标识而设计的。

【讨论】:

    【解决方案2】:

    听起来 iPad 位于 NAT 后面,在这种情况下,您将无法获得它们的内部 IP 地址。即使可以,它也不可能是每台 iPad 独有的。

    【讨论】:

      猜你喜欢
      • 2016-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 2012-12-21
      • 1970-01-01
      • 2019-11-19
      • 1970-01-01
      相关资源
      最近更新 更多