Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以使用PHP获取网络地址?_Php_Ip - Fatal编程技术网

是否可以使用PHP获取网络地址?

是否可以使用PHP获取网络地址?,php,ip,Php,Ip,可能重复: 我在一个网站上有一个脚本,当客户离开页面时,它会保存一些关于他的信息。是否可以获取他的网络地址,例如192.168.1.154 我在一个论坛上看到一个关于这个的讨论,他们说使用$\u服务器['HTTP\u X\u FORWARDED\u']],但它不起作用!它显示了我的真实IP 我如何才能做到这一点?$\u服务器['REMOTE\u ADDR'] 文件 如果客户端将从本地网络访问您,您将获得192.168.*.*.,否则将获得远程ip,如35.88.33.11$\u服务器['rem

可能重复:

我在一个网站上有一个脚本,当客户离开页面时,它会保存一些关于他的信息。是否可以获取他的网络地址,例如
192.168.1.154

我在一个论坛上看到一个关于这个的讨论,他们说使用
$\u服务器['HTTP\u X\u FORWARDED\u']]
,但它不起作用!它显示了我的真实IP


我如何才能做到这一点?

$\u服务器['REMOTE\u ADDR']

文件


如果客户端将从本地网络访问您,您将获得
192.168.*.*.
,否则将获得远程ip,如
35.88.33.11
$\u服务器['remote\u ADDR']

文件


如果客户端将从本地网络访问您,您将获得
192.168.*.*.
,否则,远程ip如
35.88.33.11
请使用以下命令:

<?php  

   echo $_SERVER['REMOTE_ADDR'];  //ip of visitor - you need this

   echo $_SERVER['SERVER_ADDR'];  //ip of server

?>
$(document).ready(function(){

    //Service 1
    $.getJSON( "http://smart-ip.net/geoip-json?callback=?",
            function(data){
                alert( data.host);
            }
    );

    //Service 2
    $.getJSON( "http://jsonip.appspot.com/?callback=?",
            function (json){
                alert( "User ip: " + json.ip); // alerts the ip address
            }
    );

});

希望这能有所帮助。

使用这个:

<?php  

   echo $_SERVER['REMOTE_ADDR'];  //ip of visitor - you need this

   echo $_SERVER['SERVER_ADDR'];  //ip of server

?>
$(document).ready(function(){

    //Service 1
    $.getJSON( "http://smart-ip.net/geoip-json?callback=?",
            function(data){
                alert( data.host);
            }
    );

    //Service 2
    $.getJSON( "http://jsonip.appspot.com/?callback=?",
            function (json){
                alert( "User ip: " + json.ip); // alerts the ip address
            }
    );

});

希望这有帮助。

这在服务器端是不可能的。像192.168.1.154这样的地址是不可路由的,所以服务器对它们一无所知。可能有些路由器将HTTP_X_FORWARDED_设置为头,但您不应该指望它。除非脚本只在本地网络上运行,就像Peter Szymkowski建议的那样


有关NAT的更多信息,请参阅。这在服务器端是不可能的。像192.168.1.154这样的地址是不可路由的,所以服务器对它们一无所知。可能有些路由器将HTTP_X_FORWARDED_设置为头,但您不应该指望它。除非脚本只在本地网络上运行,就像Peter Szymkowski建议的那样


有关NAT的更多信息,请参见。我将查看
var\u dump($\u SERVER)的哪个参数
显示您的网络IP。

我将查看
var\u dump($\u SERVER)的哪个参数显示您的网络IP。

如果您的服务器位于NAT网络之外,则无法获取客户端的内部本地IP。这不仅会带来安全风险,而且会破坏NAT的目的

如果你想要他的本地NAT'd IP,你可以运行一个javascript:


如果服务器位于NAT网络之外,则无法获取客户端的内部本地IP。这不仅会带来安全风险,而且会破坏NAT的目的

如果你想要他的本地NAT'd IP,你可以运行一个javascript:


你能解释一下你所说的网络地址是什么意思吗?如果你指的是mac地址,我认为不可能在服务器端获得客户端的mac。你能解释一下网络地址是什么意思吗?如果你指的是mac地址,我认为不可能在服务器端获得客户端mac。但这显示了我当前的ip地址,但显示了我当前的ip地址是关于PHP的@这是不可能做到的!这就是为什么提供了一个可行的解决方案。这在我的chrome上不起作用,在我的Firefox上,我得到你机器的本地网络IP是127.0.0.1,这显然不是我的NAT IP。问题是关于PHP的@这是不可能做到的!这就是为什么提供了一个可行的解决方案。这在我的chrome上不起作用,在我的Firefox上,我得到你机器的本地网络IP是127.0.0.1,这显然不是我的NAT IP