我使用此功能来获取客户端 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)
但是我如何通过服务器端而不是客户端获得纬度和经度?
PHP 没有内置的支持。您可以利用第三方库,例如ip2location从 IP 地址获取经度和纬度。
旁注:通过 IP 地址确定纬度 - 经度可能无法获取准确的信息。
<?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 次 |
| 最近记录: |