2009-04-28 136 views

回答

4

要得到用户的IP使用:

Request.UserHostAddress 

您可以使用此Web服务来获得他们的地理位置。 http://iplocationtools.com/ip_location_api.php

+0

只是供参考,它是一个财产...不是一种方法:) – 2009-04-28 15:23:56

0

好以下属性应该给你德客户端的IP地址(或客户代理服务器)

Request.UserHostAddress 

至于位置,你需要使用一些geoip的/地理位置插件一样的MaxMind弄清楚。

http://www.maxmind.com/

0

这是服务器技术不可知论的,但我建议在Google的AJAX加载器上搭载:http://code.google.com/apis/ajax/documentation/#ClientLocation

这是在Javascript中,甚至会给你的人的城市/州/国家(嗯,它需要基于IP地址的猜测)。将它发回服务器,并且可以在ASP.NET或其他平台上使用它。

1

如果您位于代理的后面,Request.UserHostAddress将不起作用。使用此代码:

public static String GetIPAddress() 
{ 
    String ip = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; 
    if (string.IsNullOrEmpty(ip)) 
     ip = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; 
    else 
     ip = ip.Split(',')[0]; 

    return ip; 
} 

注意HTTP_X_FORWARDED_FOR应该被使用,但因为它可以退还您需要使用Split函数逗号分隔的多个IP地址。有关更多信息,请参阅this page

相关问题