【发布时间】:2015-06-19 13:33:33
【问题描述】:
我在 php 中使用$_SERVER['REMOTE_ADDR'] 来查找客户端的ip address。
$ipaddress=$_SERVER['REMOTE_ADDR'];
echo $ipaddress;
返回 ::1
我也尝试了以下代码,但结果也一样。
if ($_SERVER['HTTP_CLIENT_IP'])
$ipaddress = $_SERVER['HTTP_CLIENT_IP'];
else if($_SERVER['HTTP_X_FORWARDED_FOR'])
$ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
else if($_SERVER['HTTP_X_FORWARDED'])
$ipaddress = $_SERVER['HTTP_X_FORWARDED'];
else if($_SERVER['HTTP_FORWARDED_FOR'])
$ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
else if($_SERVER['HTTP_FORWARDED'])
$ipaddress = $_SERVER['HTTP_FORWARDED'];
else if($_SERVER['REMOTE_ADDR'])
$ipaddress = $_SERVER['REMOTE_ADDR'];
else
$ipaddress = 'UNKNOWN';
我做错了什么?如何获取客户 ip?
我会使用 ip 通过ipinfo.io 查找客户的位置。
感谢您的宝贵时间。
【问题讨论】:
-
::1是有效的 ipv6 localhost 地址 -
当我在脚本中使用
$idaddress使用ipinfo.io获取位置时,我得到undefined property: stdclass::$country。无论如何,我需要完整的IP 地址
标签: php ip-address