HTML5 服务器地理位置(不是客户端位置)

Posted

技术标签:

【中文标题】HTML5 服务器地理位置(不是客户端位置)【英文标题】:HTML5 Server Geolocation (NOT client location) 【发布时间】:2014-12-26 02:11:29 【问题描述】:

我使用地理定位的 html5 实现 (navigator.geolocation) 在谷歌地图上显示客户端位置,使用谷歌地图 API。这很简单。

然而,我想要的是将服务器位置也放在地图上,即“你在这里,你的服务器在这里”。我看不出如何轻松做到这一点。

我可以像 whatsmyip 这样的页面来获取坐标,但似乎这应该内置到 API 中。我只是想念它吗?

谢谢, 科林

【问题讨论】:

【参考方案1】:

HTML5 地理定位 API 由浏览器实现,并使用可能包括 WiFi 信号、IP 地址或 GPS 模块的混合信息。它无法访问服务器的信息,也不关心服务器位置。

所有这些都是说 HTML5 地理定位 api 确实支持定位服务器,您需要通过其他方式提供坐标(很可能是某种形式的地理 IP 数据库)。

【讨论】:

【参考方案2】:

我只是用 php 抓取的:

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


$details = ip_details("8.8.8.8");

$_SESSION['user']['serverextip'] = $details->ip;
$_SESSION['user']['serverloc'] = $details->loc;

【讨论】:

以上是关于HTML5 服务器地理位置(不是客户端位置)的主要内容,如果未能解决你的问题,请参考以下文章

用户同意的 HTML5 地理位置自定义通知

如何使用HTML5地理位置定位功能

如何使用地理位置而不是完整的国家和地区名称获取国家和地区代码

地理位置 - 检查一个位置是不是属于一个区域

高级功能使用地理定位

使用 html5 进行地理定位