我正在使用Microchip的TCP/IP協議棧,並且我的設備的主機名未被廣播,儘管我可以使用其分配的IP來訪問它。如何在子網中廣播主機名
所以問題是,網絡設備使用什麼協議來廣播它的主機名,以便當我看到網絡中的設備列表時,我可以通過名稱來識別它?
是NetBIOS名稱服務還是別的?提前致謝。
我正在使用Microchip的TCP/IP協議棧,並且我的設備的主機名未被廣播,儘管我可以使用其分配的IP來訪問它。如何在子網中廣播主機名
所以問題是,網絡設備使用什麼協議來廣播它的主機名,以便當我看到網絡中的設備列表時,我可以通過名稱來識別它?
是NetBIOS名稱服務還是別的?提前致謝。
爲網絡上的主機指定主機名的最不依賴於網絡的方式是通過DNS,您的設備本身無法控制,但全部不會丟失。
在大多數環境中,DHCP和DNS服務器是綁在一起的(Windows中的AD網絡,Linux上的DNSMasq等),所以你最好的選擇是依靠這種行爲。當您使用DHCP請求IP時,DHCP協議允許您指定您要使用的主機名,並且如果網絡設置爲允許DNS服務器創建和維護DNS條目,則您在您的過程中發送的主機名通常會使用DHCP請求。
+1很好的答案 – Madbreaks 2014-04-02 16:36:49
有支持此功能的WINS(基於NetBIOS)。
有ZeroConf/Bonjour提供「服務廣告」協議,但我猜這不是你在這裏後。
在「正常的」基於IP的網絡中,名稱解析將通過DNS層:DNS服務器傳播他們的數據庫(當然,如果指示的話),但在此層沒有「廣播」的概念。
我想你現在已經解決了這個問題,但我修改了Microchip堆棧中的dchp.c文件,並將以下內容添加到_DHCPSend()的選項部分。
// host name
i = strlen(AppConfig.NetBIOSName);
UDPPut(12); //host name code
UDPPut(i); //length
UDPPutString(AppConfig.NetBIOSName);
這對我有效。
嗨。我的意思是這個問題在低級別的環境中,這意味着我需要逐字節地構建UDP數據包,所以我需要知道如何在本地子網中廣播我的主機名,或者如何響應以及如何響應知道主機名。謝謝。 – apalopohapa 2010-01-15 19:20:33