我正在使用ionic2。
我使用Cordova plugin add cordova-plugin-networkinterface
找到了我的设备 IP 地址。
这是我的IP地址
192.168.1.104
如何使用设备 IPAddress 查找位置?
请告诉我,
谢谢
您可以使用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 个请求
对于位置(根据您的原始问题(
您可以使用地理字节
用法:
$.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(与免费计划
只有外部IP地址才有机会在现实世界中找到您。要从JavaScript中获取它,您需要一个友好的网站,为其服务提供易于使用的API。
在地理位置 ip API上快速搜索会找到像 http://ip-api.com/这样同时提供公共 IP 地址和您的位置的地方。 请注意,IP地址的"分辨率"可能非常粗糙。您付费购买的 API 可能会做得更好。
要手动获取您家的公共 IP 地址,您可以使用路由器标签上的说明登录路由器。其中的某个位置是一个显示您的公共 IP 地址的菜单,尽管他们可能称之为类似于 WAN 地址的东西。如果您的密码像"密码"这样愚蠢,那么现在是时候更改它了。我喜欢把它写在一小块胶带上,大部分时间放在路由器上,不覆盖任何孔。