2012-02-06 9 views
7

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

इसके बजाय, मैंने सोचा कि मैं सहकर्मियों का होस्टनाम संग्रहीत करूंगा, भले ही आईपी बदल जाए, फिर भी वे अपने होस्टनाम के माध्यम से पहुंच सकेंगे। (मुझे पता है कि मेजबाननाम भी बदल सकते हैं लेकिन यह काफी अच्छा है)।

तो मेरा सवाल यह है कि मिश्रित विंडोज/मैक/लिनक्स क्लाइंट के साथ लैन पर होस्टनाम रिज़ॉल्यूशन काम करने के लिए वास्तव में क्या आवश्यक है?

+0

यदि यह कॉर्पोरेट नेटवर्क पर है तो आप अपने होस्टनाम को DNS सर्वर से पंजीकृत कर सकते हैं। यदि आप एक निजी लैन पर हैं तो इस एप्लिकेशन का उपयोग एकल सबनेट लैन या नेटवर्क पर करने के लिए अलग-अलग विकल्प हैं जिन्हें अलग-अलग प्रसारण डोमेन में विभाजित किया जा सकता है। (अलग सबनेट) आपका नेटवर्क कैसा दिखता है? – resmon6

+0

ऐप एक एकल सबनेट लैन में चलाएगा। लेकिन यह हजारों अलग-अलग ग्राहकों को अपने स्वयं के लैन के भीतर तैनात किया जाएगा। इसलिए मैं इस बारे में धारणा नहीं कर सकता कि वे किस राउटर का उपयोग कर रहे हैं, या कौन सी नेटवर्क सेवाएं उपलब्ध हैं। – lms

उत्तर

6

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

Zeroconf Name resolution

Universal local network name resolution method without DNS?

http://en.wikipedia.org/wiki/Zero_configuration_networking#Name_resolution

http://en.wikipedia.org/wiki/Broadcast_address#IP_networking

मैं पर सुनने के लिए एक विशिष्ट UDP पोर्ट चुनेंगे (सुविधा देता 12000 कहते हैं) और फिर जब आप होस्ट को हल करने के लिए तैयार हों तो पोर्ट 12000 पर 255.255.255.255 पर "हैलो" udp पैकेट भेजें और आपके ऐप को चलाने वाले आपके नेटवर्क पर मौजूद अन्य सभी होस्ट उनके होस्टनाम, संभवतः अन्य जानकारी वाले पैकेट के साथ उत्तर दें।

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