DHCP Host Name

文章目录

    • 前言
    • DHCP Option
    • Option (12) Host Name
    • dnsmasq

前言

打开路由器页面,看到下面连接的设备,有的显示设备名称 Tmall-Genie、ESP-C37CE8,而有的直接显示 MAC 地址 D2:B0:XX:XX:XX:XX。
这个名称是哪里来的呢?
这就是我们今天要讨论的 DHCP hostname 字段。
在这里插入图片描述

DHCP Option

DHCP 报文由若干字节组成,不同位置的字节数据代表着不同的含义。它大体上由以下两部分组成:

  1. 正文部分
  2. 附加选项部分

正文部分就是一个 DHCP 报文中不可缺少的数据。
附加选项是可选的,即 option。通常会根据实际的场景需求来决定是否添加。option 部分是直接插在 DHCP 报文末尾的,它仍旧属于 DHCP 报文。

option 的作用就是扩展 DHCP 功能。因为 DHCP 协议除了简单的分配地址外,还要实现管理设备的功能,而不同应用场景往往又会催生出不同的需求,为了满足这些客制化的需求,就需要这种可以由用户自定义的 option 选项了。

option 的格式简单,可分为三个组成部分
在这里插入图片描述
code 值从 0 ~ 255 都代表了不同的含义,或者说代表了不同的控制类型,每一个类型的详细说明见:https://www.iana.org/assignments/bootp-dhcp-parameters/bootp-dhcp-parameters.xml

Option (12) Host Name

udhcpc 命令使用 -x hostname:xxx 选项,可以在 DHCP Discover 报文中添加 option 12 选项,即 Host Name。

root@OpenWrt:/# udhcpc -i br-lan -x hostname:MyRouter_lyj
udhcpc: started, v1.36.1
udhcpc: broadcasting discover
udhcpc: broadcasting select for 192.168.31.31, server 192.168.31.1
udhcpc: lease of 192.168.31.31 obtained from 192.168.31.1, lease time 43200
udhcpc: ip addr add 192.168.31.31/255.255.255.0 broadcast 192.168.31.255 dev br-lan
udhcpc: setting default routers: 192.168.31.1

在这里插入图片描述
路由器的 dhcp server 记录该 hostname 字段,并在页面上显示下挂设备的设备名。
在这里插入图片描述

dnsmasq

有些路由器使用 dnsmasq 作为 dhcp server,该后台服务进程使用 /etc/dnsmasq.conf 作为配置文件,并将已分配的 IP 记录在 /etc/dnsmasq.leases 中

# cat /etc/dnsmasq.leases
105786 4a:78:b9:fd:51:31 192.168.1.4 Mi-10 01:4a:78:b9:fd:51:31 105787 16582 16581 android-dhcp-12
102950 92:ec:ca:c4:8d:57 192.168.1.3 Mi-10 01:92:ec:ca:c4:8d:57 102951 16551 16550 android-dhcp-12
86462 58:f2:fc:20:33:59 192.168.1.2 028bc4cb7a2a9b7892c5a1801bc632d 01:58:f2:fc:20:33:59 86463 63 62 HUAWEI:router:TC30-10:3164:8

从中可以获得 hostname

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/221384.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL 8.x 自签证书通过keytool和openssl转成JKS文件

一、写在前面 数据库MySQL 8.0 通过自签命令在datadir下生成了所有的证书文件。由于Java的JDK不支持直接加载PEM格式的证书,所以需要将PEM格式证书转换成Java能够直接加载的JKS格式证书。我们需要将根证书ca.pem转换成JKS格式的根证书truststore.jks,将…

快速认识,后端王者语言:Java

Java作为最热门的开发语言之一,长居各类排行榜的前三。所以,就算你目前不是用Java开发,你应该了解Java语言的特点,能用来做什么,以备不时之需。 Java 是一种高级、多范式编程语言,以其编译为独立于平台的字…

华为鸿蒙开发——Stage/FA模型在ArkTs语言、JS语言 实现页面互转

文章目录 一、ArkTs(Stage模型)二、ArkTs(FA模型)三、JS(FA模型) 一、ArkTs(Stage模型) 目的:实现两个页面的跳转功能 步骤: 1、打开entry > src > main > ets > pages 2、在默认页面基础上,我们添加一个…

前端vue导出PPT幻灯片,使用pptxgen.js,超详细(赋原数据)

即上一篇文章最终代码 前端vue导出PPT,使用pptxgen.js 前端vue导出PPT,使用pptxgen.js 一个平台下有10个国家,这个是后端返回数据固定的,每一个国家下面有10个物流方式,这10个物流方式是这10个国家都有的,…

【从零开始学习JVM | 第三篇】类的生命周期(高频面试)

前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。 在本文中,我们将深入探讨类的生命周期,从类加载到…

smartkit巡检E9000设备

https://support.huawei.com/enterprise/zh/doc/EDOC1100325140/f6eeacd6 打开链接,里面的内容很详细。

海外服务器和国内服务器有什么样的区别呢

海外服务器和国内服务器有什么样的区别呢,其实呢在外形方面是大同小异,除了外形还有一些其他方面还存在这一些差异。 一,地理位置的差异。 海外服务器——有可能在中国数据中心之外的任何国家地区,例如美国服务器,韩…

2.环境变量及接口关联

一、环境变量以及全局变量 操作流程 1.点击environment 2.点击environment右侧号,新增环境变量 3.在变量中输入变量名以及变量值 4.回到collection页面,修改变量环境 5.在collection中通过{{变量名}}调用变量 变量定义 环境变量:环境变量…

k8s部署单机模式的minio和minio-client

k8s部署单机模式的minio和minio-client 一、k8s部署minio1.1说明1.2 yaml内容1.3 步骤1.3.1 创建资源1.3.2 查看启动日志1.3.3 查看svc并访问控制台 二、docker部署minio-client2.1 查找镜像2.2 运行镜像2.3 绑定minio server 一、k8s部署minio 1.1说明 项目使用minio&#x…

用python测试网络上可达的网络设备

用python测试网络上可达的网络设备 之前使用的os在python中执行ping测试网络中可达的目标,但是他在执行ping命令时脚本会将系统执行ping时的回显内容显示出来,有时这些回显并不是必要的。如果用脚本一次性ping成百上千台网络设备或者URL时会影响美观和阅…

12、组合模式(Composite Pattern,不常用)

组合模式(Composite Pattern),有时又叫作部分-整体模式,它是一种将对象组合成树状的层次结构的模式,用来表示“部分-整体”的关系,使用户对单个对象和组合对象具有一致的访问性。 它在我们树型结构的问题中…

5+铜死亡+预后模型+分型生信思路,热点搭配免疫相关思路

今天给同学们分享一篇生信文章“The pathogenesis of DLD-mediated cuproptosis induced spinal cord injury and its regulation on immune microenvironment”,这篇文章发表在Front Cell Neurosci期刊上,影响因子为5.3。 结果解读: 基因芯…

【OpenGauss源码学习 —— (RowToVec)算子】

VecToRow 算子 概述ExecInitRowToVec 函数ExecRowToVec 函数VectorizeOneTuple 函数 ExecEndRowToVec 函数总结 声明:本文的部分内容参考了他人的文章。在编写过程中,我们尊重他人的知识产权和学术成果,力求遵循合理使用原则,并在…

使用Python的PyQt实现财务综合计算

背景: 考核内容 使用 Python 编写程序代码,设计一个带交互界面的财务分析软件,并满足以下要求: PART1:《财务软件设计思路报告》 (30分) (1)编写《财务软件设计思路报告》,描述你编制这个财务软件的设计目标、应用场景、设计思路…

uniapp多行文本展开或收起(兼容h5、微信小程序,其它未测试)

文章目录 一、效果图展示1、收起2、展开3、文本过短时隐藏按钮【查看更多、收起】 二、代码实现原理:判断文本是否过短1、html2、css3、 js(1)data数据定义(2)获取文本高度(3) 获取行数&#xf…

【Vue】安装 vue-router 库报错 npm ERR! ERESOLVE unable to resolve dependency tree

问题描述 运行npm install vue-router,安装vue-router库,npm报错。 npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resolving: my-project0.1.0 npm ERR! Found: vue2.7.15 npm ERR! node_mod…

linux的权限741

741权限 在 Linux 中,文件和目录的权限由三组权限来定义,分别是所有者(Owner)、所属组(Group)和其他用户(Others)。每一组权限又分为读(Read)、写&#xff0…

Ubuntu18.04 本地安装CVAT标注工具

写在前面: 1、如果直接clone最新版本的cvat,python版本最好安装3.8的,因为其中部分代码的语法只有高版本的python才可以支持。 2、安装完成以后本地登陆可能出现"cannot connect to cvat server"的错误,可以从Cannot …

FluxMQ—2.0.8版本更新内容

FluxMQ—2.0.8版本更新内容 前言 FLuxMQ是一款基于java开发,支持无限设备连接的云原生分布式物联网接入平台。FluxMQ基于Netty开发,底层采用Reactor3反应堆模型,具备低延迟,高吞吐量,千万、亿级别设备连接&#xff1…

C语言 - 字符函数和字符串函数

系列文章目录 文章目录 系列文章目录前言1. 字符分类函数islower 是能够判断参数部分的 c 是否是⼩写字⺟的。 通过返回值来说明是否是⼩写字⺟,如果是⼩写字⺟就返回⾮0的整数,如果不是⼩写字⺟,则返回0。 2. 字符转换函数3. strlen的使⽤和…