ऐसी स्थिति में जहां आप सुरक्षा के लिए आईपी पते का उपयोग करते हैं, आपको अपने बुनियादी ढांचे से अवगत होना चाहिए।
यदि आप अपने वेब सर्वर और हेडर सेट करने वाले अपने क्लाइंट के बीच प्रॉक्सी का उपयोग कर रहे हैं, तो आपको अंतिम पते पर भरोसा करने में सक्षम होना चाहिए। फिर आप आगे के हेडर से अंतिम आईपी पता प्राप्त करने के लिए अपडेट के साथ सुझाए गए मोहम्मद जैसे कोड का उपयोग करें (नीचे कोड देखें)
यदि आप प्रॉक्सी का उपयोग नहीं करते हैं, तो सावधान रहें कि एक्स-फॉरवर्डेड-हेडर हेडर बहुत है धोखा देने में आसान है। मेरा सुझाव है कि आप इसे तब अनदेखा करें जब तक आपके पास स्पष्ट कारण न हो कि क्यों नहीं।
public string GetIP(bool CheckForward = false)
{
string ip = null;
if (CheckForward) {
ip = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
}
if (string.IsNullOrEmpty(ip)) {
ip = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
} else { // Using X-Forwarded-For last address
ip = ip.Split(',')
.Last()
.Trim();
}
return ip;
}
यह Wikipedia article अधिक अच्छी तरह से जोखिम बताते हैं:
मैं के रूप में आप का चयन करने के लिए अनुमति देने के इस प्रकार मोहम्मद अख्तर की कोड अपडेट किया गया।
स्रोत
2012-11-06 10:42:18
1. [http://www.w3schools.com/asp/coll_servervariables.asp](http://www .w3schools.com/asp/coll_servervariables.asp) 2. [http://balanagaraj.wordpress.com/2008/01/07/get-users-country-name-using-ip-address/](http:// balanagaraj.wordpress.com/2008/01/07/get-users-country-name-using-ip-address/) – solairaja
संभावित डुप्लिकेट [ASP.NET में उपयोगकर्ता का क्लाइंट आईपी पता कैसे प्राप्त करें? ](http:/ /stackoverflow.com/questions/735350/how-to-get-a-users-client-ip-address-in-asp-net) –