2009-04-28 71 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

相關問題