2011-09-07 16 views
5

संभव डुप्लिकेट से आईपी पते पाने के लिए:
Client IP using C#कैसे एक आगंतुक (यह भी एक प्रॉक्सी के पीछे अगर)

मैं उपयोग ASP.net और सी # और मैं चाहते हैं पता करने के लिए किसी पृष्ठ पर किसी विज़िटर से आईपी पता कैसे प्राप्त करें।

मैं कोड का एक उदाहरण देखना चाहता हूं जो आईपी पता पुनर्प्राप्त करता है और यह भी दिखा सकता है कि कोई आईपी प्रॉक्सी के पीछे था या नहीं।

आपके समय के लिए धन्यवाद।

+0

क्यों लोग इस सवाल के लिए एक नीचे वोट? मैट द्वारा निर्देशित प्रश्न प्रॉक्सी से निपटता नहीं है। एक टिप्पणी की सराहना की जाएगी। – GibboK

+0

उस प्रश्न के उत्तर पढ़ें। कुछ प्रॉक्सी से निपटते हैं। (डाउनवोट के लिए, मुझे नहीं पता। शायद "पर्याप्त शोध नहीं" के लिए।) – Mat

+0

आपकी टिप्पणी के लिए धन्यवाद चटाई। – GibboK

उत्तर

9

आप अनुरोध वस्तु पर UserHostName संपत्ति इस्तेमाल कर सकते हैं:

string ip = Request.UserHostName; 

जहां तक ​​प्रॉक्सी के बारे में अपने दूसरे प्रश्न का संबंध है, वहाँ इस लक्ष्य को हासिल करने के लिए कोई विश्वसनीय तरीका है। आप कुछ HTTP अनुरोध हेडर देखने के लिए हेरिस्टिक का उपयोग कर सकते हैं जो प्रॉक्सी सर्वर द्वारा Via या X-Forwarded-For द्वारा भेजा जा सकता है।

string header = Request.Headers["Via"] ?? Request.Headers["X-Forwarded-For"]; 
if (!string.IsNullOrEmpty(header)) 
{ 
    // probably the request was forwarded from a proxy server 
    // but you cannot be 100% sure as HTTP request headers can be faked 
} 
+0

आपकी अंतर्दृष्टि के लिए धन्यवाद डारिन। 'अनुरोध' कार्य करने के लिए – GibboK

+0

आपको 'System.Web.dll' संदर्भ जोड़ने की आवश्यकता है, यह जांचें कि [यहां] (http://www.codeproject.com/Questions/422895/The-name-HttpContext-Does -वर्तमान में मौजूद नहीं है), उम्मीद किसी को मदद करता है। – stom

+0

"Via" में प्रॉक्सी नाम हो सकता है लेकिन वास्तविक एक्सपी "एक्स-फॉरवर्ड-फॉर" वास्तविक आईपी हो सकता है। बस सुनिश्चित करें कि आपने सही चुना है। – SeriousM

-1

इतना आसान दोस्त,

string IP = Request.ServerVariables["REMOTE_HOST"].ToString(); 
+0

उसका प्रश्न प्रॉक्सी के पीछे ऐसा करने के बारे में है। आपका समाधान हमेशा प्रॉक्सी सर्वर का आईपी देगा। –

संबंधित मुद्दे