如何在PHP中使用IP地址查找国家/地区?

Sac*_*hin 6 php ip

我有国家的IP范围.我正在检查此范围内的用户IP地址,如果为真,那么他能够看到该网站,否则他不会.我使用以下代码,

$ip = $_SERVER['REMOTE_ADDR'];
   if(ip2long($ip) >= $ipstart && ip2long($ip) <= $ipend){
        return true;
    } 
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果有人来自不同的国家,假设ABC和他的笔记本电脑/笔记本到另一个国家,假设XYZ那么上面的代码会起作用吗?在同一台笔记本电脑上

ipv4和ipv6的上述场景怎么可能?

[编辑]

$_SERVER['REMOTE_ADDR']获取哪个IP地址,它将是机器IP还是连接IP,这样我们才能知道他现在在这个国家?

谢谢

Dim*_*rab 6

使用此API http://ipinfo.io

function ip_details($IPaddress) 
    {
        $json       = file_get_contents("http://ipinfo.io/{$IPaddress}");
        $details    = json_decode($json);
        return $details;
    }

    $IPaddress  =   $_SERVER['REMOTE_ADDR'];

    $details    =   ip_details("$IPaddress");

    //echo $details->city;   #Tamilnadu  
    //echo $details->country;  
    //echo $details->org;      
    //echo $details->hostname; 
Run Code Online (Sandbox Code Playgroud)


小智 1

PHP 没有这方面的功能。您应该构建一个数据库或仅使用外部 api 来找出答案。

http://ip-api.com 这是一个很好的/免费的。只需解析该人的回复即可。