我从同一网络中的不同计算机获得相同的 IP 地址
I'm getting the same ip address from different computers in same network
我正在尝试获取客户端的 IP 地址,以便他们在每台设备上只使用一个帐户。
但是,当我使用下面的代码时,我发现同一网络中的计算机返回相同的ip地址。
function get_client_ip() {
$ipaddress = '';
if (getenv('HTTP_CLIENT_IP'))
$ipaddress = getenv('HTTP_CLIENT_IP');
else if(getenv('HTTP_X_FORWARDED_FOR'))
$ipaddress = getenv('HTTP_X_FORWARDED_FOR');
else if(getenv('HTTP_X_FORWARDED'))
$ipaddress = getenv('HTTP_X_FORWARDED');
else if(getenv('HTTP_FORWARDED_FOR'))
$ipaddress = getenv('HTTP_FORWARDED_FOR');
else if(getenv('HTTP_FORWARDED'))
$ipaddress = getenv('HTTP_FORWARDED');
else if(getenv('REMOTE_ADDR'))
$ipaddress = getenv('REMOTE_ADDR');
else
$ipaddress = 'UNKNOWN';
return $ipaddress;
}
如何从不同的设备获取正确的 IP 地址?
这些计算机很可能是通过启用了 NAT
的路由器从网络访问的。
在那种情况下,您将只能看到该路由器的 IP 地址,无法对其进行任何操作。
但是您可以检查 ip 地址和 user-agent header:
的组合
$_SERVER['HTTP_USER_AGENT']
不幸的是,没有任何方法可以 100% 检查请求的来源,但是 IP 地址和 user-agent 的组合可以用于简单的场景。
我正在尝试获取客户端的 IP 地址,以便他们在每台设备上只使用一个帐户。 但是,当我使用下面的代码时,我发现同一网络中的计算机返回相同的ip地址。
function get_client_ip() {
$ipaddress = '';
if (getenv('HTTP_CLIENT_IP'))
$ipaddress = getenv('HTTP_CLIENT_IP');
else if(getenv('HTTP_X_FORWARDED_FOR'))
$ipaddress = getenv('HTTP_X_FORWARDED_FOR');
else if(getenv('HTTP_X_FORWARDED'))
$ipaddress = getenv('HTTP_X_FORWARDED');
else if(getenv('HTTP_FORWARDED_FOR'))
$ipaddress = getenv('HTTP_FORWARDED_FOR');
else if(getenv('HTTP_FORWARDED'))
$ipaddress = getenv('HTTP_FORWARDED');
else if(getenv('REMOTE_ADDR'))
$ipaddress = getenv('REMOTE_ADDR');
else
$ipaddress = 'UNKNOWN';
return $ipaddress;
}
如何从不同的设备获取正确的 IP 地址?
这些计算机很可能是通过启用了 NAT
的路由器从网络访问的。
在那种情况下,您将只能看到该路由器的 IP 地址,无法对其进行任何操作。
但是您可以检查 ip 地址和 user-agent header:
的组合$_SERVER['HTTP_USER_AGENT']
不幸的是,没有任何方法可以 100% 检查请求的来源,但是 IP 地址和 user-agent 的组合可以用于简单的场景。