如何通过客户端ip获取经纬度?

use*_*726 3 php wordpress web

我使用此功能来获取客户端 IP 使其正常工作

function get_client_ip() {
    $ipaddress = '';
    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';

    return $ipaddress; 
}

$ip = get_client_ip();
Run Code Online (Sandbox Code Playgroud)

但是我如何通过服务器端而不是客户端获得纬度和经度?

Sha*_*ran 6

PHP 没有内置的支持。您可以利用第三方库,例如ip2location从 IP 地址获取经度和纬度。

旁注:通过 IP 地址确定纬度 - 经度可能无法获取准确的信息。

使用geoplugin.net。看看这是否适合你。

<?php
$new_arr[]= unserialize(file_get_contents('http://www.geoplugin.net/php.gp?ip='.$_SERVER['REMOTE_ADDR']));
echo "Latitude:".$new_arr[0]['geoplugin_latitude']." and Longitude:".$new_arr[0]['geoplugin_longitude'];
Run Code Online (Sandbox Code Playgroud)

OUTPUT :

Latitude:180.240601 and Longitude:12.9819
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

12190 次

最近记录:

11 年,9 月 前