如何从用户获取IP地址

时间:2018-03-12 05:10:39

标签: php

我的网页离线返回lpv4格式的ip地址

但是在服务器(在线)上传它会显示一个lpv6 ip地址。

主要目的是在我的网站上获取客户端电脑的IP地址

localhost wamp ip address

  1. 0.0.somthing
  2. Webhost ip地址获取是 2402:3A80:872:94A:d99f:D430:3dae:980

    <?php
       echo $_SERVER['REMOTE_ADDR'];
    ?>
    

3 个答案:

答案 0 :(得分:0)

你可以这样:

   <?PHP

function getUserIP()
{
    $client  = @$_SERVER['HTTP_CLIENT_IP'];
    $forward = @$_SERVER['HTTP_X_FORWARDED_FOR'];
    $remote  = $_SERVER['REMOTE_ADDR'];

    if(filter_var($client, FILTER_VALIDATE_IP))
    {
        $ip = $client;
    }
    elseif(filter_var($forward, FILTER_VALIDATE_IP))
    {
        $ip = $forward;
    }
    else
    {
        $ip = $remote;
    }

    return $ip;
}


$user_ip = getUserIP();

echo $user_ip; // Output IP address [Ex: 177.87.193.134]


?>

答案 1 :(得分:0)

如果您使用的是PHP 5.3或更高版本,则可以这样做

{{1}}

当您运行独立脚本而不是通过Web服务器

时,此方法有效

答案 2 :(得分:0)

我一直在我的页面上使用它。希望它有效。

 public 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;
}

echo get_client_ip();