2011-06-13 13 views
5

मैं निम्नलिखित कोड का उपयोग कर रहा हूं। स्थानीयहोस्ट में चलते समय यह क्लाइंट मशीन का नाम सही ढंग से देता है, लेकिन जब मैं इसे विकास सर्वर चलाता हूं, तो यह वास्तविक परिणाम नहीं दे रहा है। कोई उपाय?ग्राहक मशीन का नाम प्राप्त करें

यह एक एएसपीएनटी एमवीसी एप्लीकेशन है।

string clientMachineName; 
clientMachineName = 
    (Dns.GetHostEntry(Request.ServerVariables["remote_addr"]).HostName); 
Response.Write(clientMachineName); 

मुझे क्लाइंट का कंप्यूटर नाम या मशीन नाम चाहिए जो अनुरोध कर रहा है। उपरोक्त कोड मुझे एक मूल्य '172.16.12.100' देता है।

किसी भी मदद की बहुत सराहना की।

+0

यह एएसपी.नेट है? क्या संस्करण? अनुरोध इस जानकारी को एक टैग में जोड़ें – balexandre

+0

हां, यह एएसपीनेट एप्लिकेशन – Lamps

+0

में है जिसके परिणामस्वरूप आप विकास सर्वर पर हैं? और अपेक्षित परिणाम क्या है? –

उत्तर

9

आपको एहसास है कि, आप क्या पूछ रहे हैं और आप कैसे कर रहे हैं, यह सही है?

आपको यह समझने की आवश्यकता है कि आईपी पता पहले स्थान पर क्या है।

Request.ServerVariables("REMOTE_ADDR") का उपयोग करते समय यह कभी भी "असली पता", नहीं होगा क्योंकि कोई भी "वास्तविक पता" कभी नहीं भेजा जाता है।

नेटवर्क परत पर एक आईपी पता कुछ उपयोग किया जाता है, और वास्तव में आपके आवेदन द्वारा उपयोग नहीं किया जाना चाहिए, अगर आप वास्तव में किसी दिए गए मशीन की पहचान चाहते हैं, तो आपको X.509 certificates जैसे कुछ का उपयोग करने की आवश्यकता है, जो कि प्रतिनिधित्व करने के लिए हैं एक पहचान (एक आईपी पता पहचान नहीं है)।

जब कोई उपयोगकर्ता एनएटी के पीछे होता है तो आपको समस्या होगी, और आपको किसी उपयोगकर्ता की सही पहचान कभी नहीं मिलेगी।

यही कारण है कि स्थानीयहोस्ट के तहत सबकुछ ठीक काम करता है लेकिन जल्द ही आप अपने "बॉक्स" के बाहर कुछ भी खराब करना शुरू कर देते हैं।

+0

यह जानने के लिए प्यारा होगा कि डाउन वोट क्यों। – balexandre

+0

आपके उत्तर के लिए धन्यवाद। – Lamps

+0

इंट्रानेट मामले में भी हम क्लाइंट मशीन का नाम प्राप्त करने में सक्षम नहीं होंगे? – Lamps

1

आपको उस जानकारी को दूरस्थ नेटवर्क पर प्राप्त करने की गारंटी नहीं है। मुझे लगता है कि आपका देव सर्वर एक ही नेटवर्क पर नहीं है।

2

Dns.GetHostEntry Method (String) विधि किसी होस्ट नाम या आईपी पते से जुड़े आईपी पते के लिए एक DNS सर्वर से पूछताछ करता है। यह शायद रिमोट नेटवर्क पर काम नहीं करेगा क्योंकि आप एक ही DNS सर्वर से पूछताछ नहीं कर रहे हैं।

अधिक जानकारी: http://msdn.microsoft.com/en-us/library/ms143998.aspx

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