如何使用ASP.NET获取访问者位置(国家,州和城市)

时间:2009-09-11 05:19:48

标签: asp.net geolocation

我想在ASP.NET中实现它。不幸的是,我不知道如何这样做。

8 个答案:

答案 0 :(得分:11)

这是如何在asp.net中完成的。

Request.ServerVariables("REMOTE_ADDR")

按位置获取IP地址数据库的副本

http://www.maxmind.com/

答案 1 :(得分:5)

为什么不使用Google Analytics?你将得到比你需要的更多。或者,您可以获取客户端的IP并使用ip2location之类的服务来获取位置。

同样检查这个类似的问题。 finding clients location in asp.net page.

答案 2 :(得分:5)

有一些提供IP到位服务的免费网络服务。例如:

http://freegeoip.net/
http://www.hostip.info/
http://ipinfodb.com/ip_location_api.php

答案 3 :(得分:4)

使用

string userHost = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (String.IsNullOrEmpty(userHost) || 
    String.Compare(userHost, "unknown", true) == 0)
{
    userHost = Request.UserHostAddress;
}

您将获得用户的IP地址。根据此IP地址,您可以通过调用webservice来查找访问者位置详细信息。

答案 4 :(得分:2)

IPAddressExtensions是一个免费的codeplex类库,如果您只想要的是IP所在的国家/地区。

答案 5 :(得分:2)

首先,使用Request.ServerVariables(“REMOTE_ADDR”)获取访问者的IP地址。 请记住,访问者可能正在使用代理服务器,在这种情况下,IP地址可能不是他们的实际IP地址。对于代理案例,您可以检查Request.ServerVariables(“HTTP_X_FORWARDED_FOR”)是否包含值。如果代理服务器不是匿名代理服务器,这将是实际的IP地址。

然后您有2个选项,使用Web服务或查询您自己的数据库中的数据。无论哪种方式,您都需要能够匹配其所在国家/地区,州和城市的访问者IP地址的数据。

答案 6 :(得分:0)

获取客户端IP并使用任何IP到地理位置映射服务查找IP的位置。

答案 7 :(得分:0)

这就是我用过的:

<script type="text/javascript">
    $(document).ready(function() {
        $.ajax({
            'url': 'http://www.freegeoip.net/json/@(HttpContext.Current.Request.UserHostAddress)',
            'type': 'GET',
            'success': function(data) {
                // for example
                if (data.country_code === "GB") {
                    ... further logic here
                }
            }
        });
    });
</script>