İstemci'nin IP adresi asp.net'de nasıl alınır?
January 6, 2009 at 3:01 AM
—
oozturk
İstemcilerin IP adresini almak için normalde Request.ServerVariables["REMOTE_ADDR"] değeri kullanılır. Ancak bazı istemciler proxy kullanarak bağlanırlar, bu durumlarda REMOTE_ADDR değeri proxy server'ın IP adresini içerir. Bu durumlarda Request.ServerVariables["HTTP_X_FORWARDED_FOR"] değeri kullanılmalıdır. Ancak istemci'nin proxy kullanıp kullanmadığını nasıl anlarız? Çok kolay; proxy kullanmayan istemci bağlandığında, HTTP_X_FORWARDED_FOR değeri boş olur. Bu sebeple aşağıdaki kod her iki durumda da istemci IP'sinin alınmasını sağlar.
public static string GetClientIPAddress()
{
string rtnVal = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if(rtnVal == "")
rtnVal = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
return rtnVal;
}