我想通过php获取我的机器的IP地址。为此,我写的代码是这样的:PHP中机器的IP地址给出:: 1,但是为什么?
<?php echo "<br />".$_SERVER['REMOTE_ADDR'];?>
但是这段代码不起作用。它返回“::1
”。 请帮助我如何获得实际的IP地址。
我想通过php获取我的机器的IP地址。为此,我写的代码是这样的:PHP中机器的IP地址给出:: 1,但是为什么?
<?php echo "<br />".$_SERVER['REMOTE_ADDR'];?>
但是这段代码不起作用。它返回“::1
”。 请帮助我如何获得实际的IP地址。
::1
是实际的IP。它是一个ipv6回送地址(即本地主机)。如果您使用的是ipv4,它将是127.0.0.1
。
如果您想获得不同的IP地址,则需要通过不同的网络接口连接到服务器。
好,非常感谢。这对我来说是新的。再次感谢。 – John
$ _SERVER ['REMOTE_ADDR']是客户端的IP地址。
$ _SERVER ['SERVER_ADDR']是服务器的IP地址。
看的phpinfo()
输出。如果该地址不在该页面上,则该地址不能直接通过PHP获得。
'$ http_client_ip = $ _SERVER ['HTTP_CLIENT_IP']; $ http_x_forwarded_for = $ _ SERVER ['HTTP_X_FORWARDED_FOR']; $ remote_addr = $ _ SERVER ['REMOTE_ADDR']; if(!空($ http_client_ip)) {$ IP_ADDRESS = $ http_client_ip;} 否则,如果(!空($ HTTP_X_FORWARDED_FOR)) {$ IP_ADDRESS = $ HTTP_X_FORWARDED_FOR;} 其他 {$ IP_ADDRESS = $ REMOTE_ADDR;} 回声$ IP_ADDRESS ;” –
为什么突然downvote?这个答案显示,**是**或**的信息不适用于PHP。 – dotancohen
如果你的意思是让用户的IP地址,你可以这样做:
<?php
if(!empty($_SERVER['HTTP_CLIENT_IP'])){
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else{
$ip=$_SERVER['REMOTE_ADDR'];
}
?>
<?php echo "<br />".$ip;?>
它会得到用户的实际IP地址,无论代理等
如果您尝试运行本地主机,此答案将解决您的问题。在
apache2/httpd.conf
搜索只是一些改变一切 “听” 字 例如:
Listen 80
作出这样。
Listen 127.0.0.1:80
比重新启动你的Apache
$_SERVER[REMOTE_ADDR]
将显示Listen 127.0.0.1
你可以看到答案在此detailed answer link
'$ _ SERVER [ 'REMOTE_ADDR']'不是的IP地址你的机器。 – hakre
可能的重复:[使用PHP识别服务器IP地址](http://stackoverflow.com/questions/5800927/identify-server-ip-address-with-php) - 或者如果您需要其他的东西 - [如何我用PHP找到用户的IP地址?](http://stackoverflow.com/questions/55768/how-do-i-find-a-users-ip-address-with-php) – hakre
什么机器?您运行PHP的服务器?浏览器连接到服务器的桌面正在运行? – Quentin