如何在子网中广播主机名

时间:2010-01-15 18:58:10

标签: tcp network-protocols netbios

我正在使用Microchip的TCP / IP堆栈,并且我的设备的主机名没有被广播,尽管我可以使用其DHCP分配的IP来访问它。

所以问题是,网络设备用来广播其主机名的协议是什么,所以当我看到网络中的设备列表时,我可以通过名称识别它?

它是NetBIOS名称服务还是其他什么?提前谢谢。

3 个答案:

答案 0 :(得分:6)

在网络上为主机指定主机名的最与网络无关的方法是通过 DNS ,您的设备本身无法控制,但所有内容都不会丢失。

在大多数环境中,DHCP和DNS服务器绑定(Windows网络中的AD,Linux上的DNSMasq等),因此您最好的选择是依赖此行为。当您使用DHCP请求IP时,DHCP协议允许您指定您要使用的主机名,并且如果网络设置为允许DNS服务器创建和维护DNS条目,则您在通常会使用DHCP请求。

DHCP参数称为“主机名”。此参数的网络协议文档位于RFC 2132,并解释了here

答案 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);

这对我有用。