2012-06-11 19 views
5

मैं यह पता लगाने की कोशिश कर रहा हूँ फाइल कैसे अगर वहाँ DNS या मेजबान फ़ाइल संशोधन के बिना एक निश्चित आईपी के लिए एक होस्ट नाम संकल्प बनाने के लिए एक तरीका है।होस्ट नाम संकल्प

सी # का उपयोग करना, मैं सर्वर से ग्राहक से एक अनुरोध बना रही हूँ, लेकिन मैं अनुरोध में होस्ट नाम उपयोग करने के लिए इतना है कि प्रमाण पत्र ठीक से अनुरोध को प्रमाणित करेंगे। हालांकि, मेरा प्रोग्राम व्यवस्थापक अधिकारों के बिना चलाने के लिए है, इसलिए मैं मेजबान फ़ाइल को संशोधित नहीं कर सकता। मेरे पास सही आईपी और होस्ट नाम है, क्या कंप्यूटर को मेजबान नाम को आईपी में हल करने का कोई और तरीका है?

+1

DNS सर्वर के साथ क्या गलत है यह मशीन का उपयोग कर रहा है कि यह मेजबान नाम को सही आईपी पर स्वचालित रूप से हल नहीं कर रहा है? – cadrell0

+0

सर्वर DNS पर नहीं है, इसलिए समाधान संभव नहीं है। – akroy

उत्तर

2

यह इस को हल करने के लिए सबसे सरल तरीका की तरह लग रहा मेजबान फ़ाइल को संशोधित करने के अधिकार के साथ एक सेवा बनाने के लिए है, तो मुख्य कार्यक्रम से कि सेवा का उपयोग है। सेवा एक ही कमांड चलाती है और बाहर निकलती है। चूंकि किसी सेवा में ऊंचा स्थिति हो सकती है, इसलिए आप अनिवार्य रूप से मानक उपयोगकर्ता प्रोग्राम के अंदर व्यवस्थापक अधिकारों को समाहित कर सकते हैं।

0

सरल उत्तर: नहीं।

(दुर्भाग्य से जवाब इतना के लिए बहुत सरल और छोटा है)।

1

आप एक HTTP अनुरोध कर रहे हैं, तो आप होस्टनाम का समाधान करने की जरूरत नहीं है; यूआरएल में आईपी एड्रेस का प्रयोग करें और अपने HTTP अनुरोध में होस्ट हेडर पास करें।

HttpWebRequest.Host Property

अद्यतन: खेद प्रमाण पत्र आवश्यकताओं नहीं देखा। मुझे लगता है कि आप स्थापना के दौरान मेजबान फ़ाइल को संशोधित करने में सक्षम होना चाहिए (क्योंकि स्थापना आमतौर पर व्यवस्थापक अधिकारों के तहत होती है)। 127.0.0.1 (स्थानीय मशीन) को इंगित करने के लिए आप जिस होस्ट नाम में रूचि रखते हैं उसे जोड़ें। फिर, आपका ऐप एक सुनवाई सॉकेट खोल सकता है और प्रॉक्सी के रूप में कार्य कर सकता है, डेटा को वास्तविक वेब सर्वर पर चैनल कर सकता है। फ़ायरवॉल सक्षम होने वाले क्लाइंट के आधार पर यह काम कर सकता है या नहीं भी हो सकता है।

+1

यदि वह करता है कि वह SSL प्रमाणपत्र सत्यापन विफल हो जाएगा क्योंकि प्रमाणपत्र पर नाम पर वास्तविक DNS नाम है, जो 'होस्ट' प्रॉपर्टी में उपयोग किए गए आईपी से मेल नहीं खाएगा। यही वह है जो वह टालने की कोशिश कर रहा है। – CodingGorilla

+0

मैं कनेक्शन बनाने के लिए रसडियल का उपयोग कर रहा हूं, इसलिए ऐसा लगता है (मैं कोई आरएएस विशेषज्ञ नहीं हूं) मैं एक "फोन नंबर" दे सकता हूं जो या तो आईपी या होस्टनाम है। कनेक्शन पर प्रमाणीकरण तब तक काम नहीं करेगा जब तक कि मैं होस्टनाम का उपयोग फ़ोन नंबर के रूप में नहीं करता। – akroy

+0

@ कोडिंग गोरिल्ला कृपया अपडेट की गई पोस्ट देखें। –

-3
इस

मेरे लिए काम किया:

चरण 1. ओपन अपने Windows प्रारंभ मेनू, नोटपैड आवेदन के लिए खोज और फिर सही नोटपैड आइकन पर क्लिक करें।

चरण 2. "व्यवस्थापक के रूप में चलाएँ" चुनें और फिर, जबकि अंदर नोटपैड, (/ विंडोज़/system32/ड्राइवरों/आदि) फ़ोल्डर में ब्राउज़ मेजबान फ़ाइल मौजूद है।

+0

यह प्रोग्रामेटिक नहीं है, और यह व्यवस्थापक अधिकारों का उपयोग करता है ... – akroy

-1
public bool ModifyHostsFile(string sEntryIPAddr, string sEntryURL) 
    { 
     try 
     { 
      using (StreamWriter w = File.AppendText(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), @"drivers\etc\hosts"))) 
      { 
       w.WriteLine(sEntryIPAddr+" "+ sEntryURL); 
       return true; 
      } 
     } 
     catch (Exception ex) 
     { 
      Console.WriteLine(ex.Message); 
      return false; 
     } 
    } 
+0

कृपया कुछ स्पष्टीकरण जोड़ें कि यह कोड OP को क्यों मदद करता है। इससे भविष्य के दर्शकों को उत्तर देने में मदद मिलेगी।अधिक जानकारी के लिए [उत्तर] देखें। –

+0

ओपी मेजबान फ़ाइल को संशोधित नहीं करना चाहता है –

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