我有一台 Cisco 路由器。固件网页上有一个显示 DHCP 客户端表的选项卡。顾名思义,它列出了网络上的所有 DHCP 客户端。表中的第一列是“客户端名称”。有些设备有名称,有些没有。
客户端名称从何而来?
它是 DHCP 协议的一部分吗?
它是协议中的可选参数吗?
我正在开发自己的嵌入式以太网设备,它是没有列出客户端名称的项目之一,我正在试图找出原因。
答案1
是的,它可能来自 DHCP 请求。
DHCP 协议允许在 DHCP 请求中添加“主机名”字段(以便计算机告知其名称)以及 DHCP 确认(以便 DHCP 服务器分配不同的主机名)。这在RFC 2132§3.14对于 DHCPv4,以及draft-ietf-dhc-v6opts §3.7用于 DHCPv6。许多 DHCP 服务器将客户端指定的主机名转发到内部 DNS 服务器,并将其显示在租约管理界面中。
答案2
正在发生的事情被称为“反向地址解析”,它可以通过多种方式处理:
- RARP(反向地址解析协议)- 过时的
- WINS(Windows Internet 名称服务)- 变得不那么受欢迎
- 反向 DNS 查找- 最常见的
出现的设备可能会向其设置的 DNS 服务器进行自我注册,然后 DHCP 客户端可以从 DNS 服务器获取共享信息(如果路由器也提供 DNS)或对 DNS 服务器执行反向 DNS 查找(如果路由器不提供 DNS)并找到计算机的名称。
答案3
- Ubuntu: /etc/dhcp3/dhclient.conf
- 红帽:/etc/sysconfig/network-scripts/ifcfg-eth0
但在我的 Red Hat 机器上没有该文件,但我可以通过控制中心设置 DHCP 客户端 ID,方法是打开“网络连接”对话框,单击相关的无线连接并点击“编辑”。然后我单击“IPV4 设置”选项卡并在那里设置 DHCP 客户端 ID。但我不确定它存储在哪里(哪个文件)。
高血压
答案4
这来自主机名,正如已接受的答案所指出的那样。我正在添加有关如何为 Android 用户更改此设置的命令。转到 adb shell 或从具有 root 权限的某个终端应用程序执行这些命令。
查看设备名称
getprop net.hostname
它应该显示与你在 wifi 或路由器设置中为已连接客户端或活动设备列表显示的名称相同的名称。现在如何更改它
su
setprop net.hostname myandroid
现在已设置完毕,请手动重启设备或使用命令
reboot
其余更改应在设备启动时由路由器选择。请注意,这些命令仅适用于 Android shell 命令。