我想在ASP.NET中实现它。不幸的是,我不知道如何这样做。
答案 0 :(得分:11)
答案 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>