如何从 MVC 中的 ip 地址获取格式化地址
Posted
技术标签:
【中文标题】如何从 MVC 中的 ip 地址获取格式化地址【英文标题】:How to get formatted address from ip address in MVC 【发布时间】:2015-01-18 07:29:37 【问题描述】:我在 javascript 中使用了以下代码来获取经度、纬度、城市、国家等。 但我需要完整格式的地址,我怎样才能得到这个?
jQuery.ajax(
url: '//freegeoip.net/json/',
type: 'POST',
dataType: 'jsonp',
success: function (location)
// example where I update content on the page.
jQuery('#city').html(location.city);
jQuery('#region-code').html(location.region_code);
jQuery('#region-name').html(location.region_name);
jQuery('#areacode').html(location.areacode);
jQuery('#ip').html(location.ip);
jQuery('#zipcode').html(location.zipcode);
jQuery('#longitude').html(location.longitude);
jQuery('#latitude').html(location.latitude);
jQuery('#country-name').html(location.country_name);
jQuery('#country-code').html(location.country_code);
);
【问题讨论】:
你说的全格式地址是什么意思? 【参考方案1】:我认为不可能从用户的 IP 地址中获取完整格式的地址,因为 ISP 不提供此信息。否则,每个人都可以知道你住在哪里:)
您可以使用可以为您提供该地区大致位置和信息的服务。
例如,您可以使用userinfo.io,这是一项免费的 ip-to-geolocation 服务。准确度大约是这样的:
大陆:~99.9% 国家:~95% 城市:~50% 准确位置(纬度/经度):~50%而且数据来自多个数据库,所以非常好。在实践中,较发达的国家会非常准确(我住在美国,地理位置在 1 个街区之内),而欠发达国家可能会为您提供更广泛的近似区域。
要使用它,只需将依赖项添加到库中即可:
<script type="text/javascript" href="//cdnjs.cloudflare.com/ajax/libs/userinfo/1.0.0/userinfo.min.js"></script>
并获取数据:
<script type="text/javascript">
UserInfo.getInfo(function(data)
// the "data" object contains the info
, function(err)
// the "err" object contains useful information in case of an error
);
</script>
数据如下:
request_date: "2014-09-18T04:11:25.154Z",
ip_address: "192.77.237.95",
position:
latitude: 37.7758,
longitude: -122.4128,
accuracy: 3 // This is the accuracy radius, in kilometers
,
continent:
name: "North America",
code: "NA",
,
country:
name: "United States",
code: "US",
,
city:
name: "San Francisco",
code: "94103"
免责声明:我编写并维护此服务
【讨论】:
以上是关于如何从 MVC 中的 ip 地址获取格式化地址的主要内容,如果未能解决你的问题,请参考以下文章
如何从Core Data中的字符串获取Processed字符串
如何在 ASP.NET MVC 中获取客户端的 IP 地址?