有没有办法将描述性名称与 OpenWRT 中的 MAC 地址关联起来?

有没有办法将描述性名称与 OpenWRT 中的 MAC 地址关联起来?

是否有人知道是否有办法将描述性名称与 OpenWRT/LEDE 上的 MAC 地址关联,而无需更改设备的主机名?

对于认为答案是主机名的用户来说,答案不是主机名。

目前,OpenWRT/LEDE 上的 DHCP 表显示了这些设备给出的(或其所有者给出的)设备名称,但是这些名称对我来说毫无意义。

例如,目前,DHCP 表显示

android-1boeusthaoeu <MAC address> <IP address>
? <another MAC address> <another IP address>

例如,我希望看到

"jim's device" <MAC address> <IP address>
"The TV" <another MAC address> <another IP address>

是否有一个包,或者我可以配置的东西来实现这一点?

答案1

如果您想根据 DHCP 客户端的 MAC 地址为其分配主机名,那么您可以使用/etc/config/dhcp如下块进行配置:

config host
    option name myhost
    option mac de:ad:be:ef:ca:fe

您还可以添加来option ip为其保留特定的 IP 地址。

uci您可以使用命令行工具编辑文件,也可以通过 LuCI Web 应用程序进行编辑。请记住在使用/etc/init.d/dnsmasq restart编辑器更改配置文件后或uci commit使用 时执行此操作uci

我意识到这jim's device可能不是一个主机名,但分配一个主机名(例如jim_device)至少可以让设备通过您选择的名称识别。

答案2

这可以在 LuCI 接口上单独完成。
网络 -> DHCP 和 DNS -> 静态租约 -> 添加

在撰写本文时,“表格”如下所示:
在此处输入图片描述
您可以指定主机名、MAC 地址,并保留 IPv4 地址未指定。将添加相同的行,/etc/config/dhcp就像您按照starfry 的回答并手动完成。

答案3

自 OpenWRT 22.03 起,分配静态租约是我发现通过 LuCI Web 界面将名称与 MAC 地址关联的最简单方法。请注意,您实际上不必分配静态 IP,此功能定义了用于该设备的 DHCP 租约设置,如果您不分配静态 IP,则可能包括动态 IP。无论哪种方式,名称都会添加到本地 DNS,因此如果 LAN 上的其他计算机使用路由器进行 DNS,它们可以使用该分配的名称。

UI 的主机名功能不允许您指定 MAC 地址。

答案4

将 MAC 地址与描述关联起来的方法是使用 Lua 程序并将代码与 LuCI 页面关联起来,我没有这样做:

function dump(o)
  if type(o) == 'table' then
    local s = '{ '.. string.char(10)
    for k, v in pairs(o) do
      if type(k) ~= 'number' then
        k = '"' .. k .. '"'
      end
      s = s .. '[' .. k .. '] = ' .. dump(v) .. string.char(10)
    end
    return s .. '} '.. string.char(10)
  else
    return tostring(o)
  end
end

HostData = {}
function HostData.new(macAddr, description)
  return { MacAddress = macAddr, Description = description }
end

Dictionary = {}
hostdata = HostData.new("12:34:56:78", "My first Powerful Laptop")
Dictionary[1] = hostdata
hostdata = HostData.new("78:34:56:12", "My SuperDuper laptop")
Dictionary[2] = hostdata
print("dictionary: ", dump(Dictionary))
  • 更好的版本可能可以从 DHCP 服务器获取 IP 地址和主机名,并将它们添加到上述数据中

相关内容