我正在使用Microchip的TCP / IP堆栈,并且我的设备的主机名没有被广播,尽管我可以使用其DHCP分配的IP来访问它。
所以问题是,网络设备用来广播其主机名的协议是什么,所以当我看到网络中的设备列表时,我可以通过名称识别它?
它是NetBIOS名称服务还是其他什么?提前谢谢。
答案 0 :(得分:6)
在网络上为主机指定主机名的最与网络无关的方法是通过 DNS ,您的设备本身无法控制,但所有内容都不会丢失。
在大多数环境中,DHCP和DNS服务器绑定(Windows网络中的AD,Linux上的DNSMasq等),因此您最好的选择是依赖此行为。当您使用DHCP请求IP时,DHCP协议允许您指定您要使用的主机名,并且如果网络设置为允许DNS服务器创建和维护DNS条目,则您在通常会使用DHCP请求。
答案 1 :(得分:0)
支持此功能的WINS(基于NetBIOS)。
ZeroConf / Bonjour提供了“服务广告”协议,但我猜这不是你在这里的目的。
在“普通”基于IP的网络中,名称解析将通过DNS层:DNS服务器传播其数据库(如果当然也指示了),但在此层没有“广播”的概念。
答案 2 :(得分:0)
我想你现在已经解决了这个问题,但我修改了Microchip堆栈中的dchp.c文件并将以下内容添加到了_DHCPSend()的选项部分。
// host name
i = strlen(AppConfig.NetBIOSName);
UDPPut(12); //host name code
UDPPut(i); //length
UDPPutString(AppConfig.NetBIOSName);
这对我有用。