我有一个php页面,学校的学生通过他们的iPad登录。我需要在此过程中记录他们的IP地址(用于学校的记录保存)但是他们都有相同的IP地址和方法我正在使用:
if (getenv(HTTP_X_FORWARDED_FOR)) {
$ipaddress = getenv(HTTP_X_FORWARDED_FOR);
} else {
$ipaddress = getenv(REMOTE_ADDR);
}
我可以获得的每个iPad都有哪些更深入的IP地址?
答案 0 :(得分:1)
这就是网络的现实。您可以获得的唯一可靠地址是$_SERVER['REMOTE-ADDR']
,因为这是在TCP / IP握手中协商的地址。这个地址可能只是路由器,代理,NAT设备或其他你无法“超越”的地址。 HTTP标头中的任何其他内容都是完全无法修复的,不可靠且易于欺骗。
IP地址根本无法保证或预期是唯一的或“真实的”,除非您完全掌控并完全了解客户端与服务器之间的网络。
这是因为基于IP的分组交换网络的设计目的是可靠地将数据从网络上的一个节点传送到另一个节点。 IP地址是其实现细节。两者都不是为唯一标识而设计的。
答案 1 :(得分:0)
听起来像iPad背后的NAT,在这种情况下你将无法获得他们的内部IP地址。即使你可以,它也不一定是每个iPad独有的。