如何从 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 地址获取格式化地址的主要内容,如果未能解决你的问题,请参考以下文章

如何将标准 IP 地址格式字符串转换为十六进制和长字符串?

如何从Core Data中的字符串获取Processed字符串

splunk:从ip地址获取前三个数字

如何在 ASP.NET MVC 中获取客户端的 IP 地址?

当服务器位于 AWS ELB 之后时,ASP.NET Core MVC 应用程序如何获取客户端 IP 地址?

如何从 json 解码结果中获取格式化地址