使用设备IP地址查找位置

时间:2017-07-29 10:13:32

标签: javascript ionic-framework ionic2 cordova-plugins

我正在使用ionic2。

我使用Cordova plugin add cordova-plugin-networkinterface找到了设备的IP地址。

这是我的IP地址

192.168.1.104

如何使用设备IPAddress找到位置?

请建议我,

由于

2 个答案:

答案 0 :(得分:1)

你可以使用ExternalIp获取位置,我会使用freegeoip.net,因此调用此URL可以获得JSON对象,如下所示:

<强>输出:

{
  "ip": "116.12.250.1",
  "country_code": "SG",
  "country_name": "Singapore",
  "region_code": "01",
  "region_name": "Central Singapore Community Development Council",
  "city": "Singapore",
  "zip_code": "",
  "time_zone": "Asia/Singapore",
  "latitude": 1.2931,
  "longitude": 103.8558,
  "metro_code": 0
}

<强>限制:

每小时10,000次请求

对于位置(根据您的原始问题)

您可以使用Geobytes

<强>用法:

$.getJSON('http://gd.geobytes.com/GetCityDetails?callback=?', function(data) {
  console.log(JSON.stringify(data, null, 2));
});

<强>返回:

{
  "geobytesforwarderfor": "",
  "geobytesremoteip": "116.12.250.1",
  "geobytesipaddress": "116.12.250.1",
  "geobytescertainty": "99",
  "geobytesinternet": "SA",
  "geobytescountry": "Saudi Arabia",
  "geobytesregionlocationcode": "SASH",
  "geobytesregion": "Ash Sharqiyah",
  "geobytescode": "SH",
  "geobyteslocationcode": "SASHJUBA",
  "geobytescity": "Jubail",
  "geobytescityid": "13793",
  "geobytesfqcn": "Jubail, SH, Saudi Arabia",
  "geobyteslatitude": "27.004999",
  "geobyteslongitude": "49.660999",
  "geobytescapital": "Riyadh ",
  "geobytestimezone": "+03:00",
  "geobytesnationalitysingular": "Saudi Arabian ",
  "geobytespopulation": "22757092",
  "geobytesnationalityplural": "Saudis",
  "geobytesmapreference": "Middle East ",
  "geobytescurrency": "Saudi Riyal",
  "geobytescurrencycode": "SAR",
  "geobytestitle": "Saudi Arabia"
}

<强>限制

  • 每小时16,384次请求
  • 可以返回错误的位置
  • 没有带有免费计划的SSL(https)

答案 1 :(得分:0)

只有外部IP地址才有机会在现实世界中找到您。要从JavaScript中获取它,您需要一个友好的网站,为其提供易于使用的API服务。

快速搜索地理定位IP API 会显示http://ip-api.com/等提供公共IP地址和您所在位置的地方。请注意&#34;分辨率&#34; IP地址可能非常粗糙。您支付的API可能会做得更好。

要手动获取家庭的公共IP地址,您可以使用路由器标签上的说明登录路由器。其中的某个位置是显示您的公共IP地址的菜单,尽管它们可能称之为WAN地址。如果您的密码是&#34;密码&#34;这样的傻瓜,现在是时候改变密码了。我喜欢把它写在一小块磁带上,并把它大部分放在路由器上,而不是覆盖任何一个洞。