DHCP报文格式

struct dhcp_packet {uint8_t op;      // 报文类型,1表示请求报文,2表示回应报文/**    DHCP 客户端的 MAC 地址类型。MAC 地址类型其实是指明网络类型,htype 值为 1 时表示为最 *  常见的以太网 MAC 地址类型。*/uint8_t htype;   uint8_t hlen;    // 硬件地址长度。以太网 MAC 地址长度为 6 个字节,即 hlen 值为 6。/**  跳数,DHCP 报文经过的中继数量。每经过一个路由器,该字段就会增加 1。如果没有经过路由器,            *  则值为 0(同一网内)。*/uint8_t hops;    uint32_t xid;    // 事务 ID,唯一uint16_t secs;   // 从获取到 IP 地址或者续约过程开始到现在所过去的时间uint16_t flags;  // 0 表示采用单播发送方式,1 表示采用广播发送方式。
#define BROADCAST_FLAG 0x8000 // 需要广播回复uint32_t ciaddr; // DHCP 客户端的 IP 地址uint32_t yiaddr; // DHCP 服务器分配给客户端的 IP 地址//为 DHCP 客户端分配 IP 地址等信息的其他 DHCP 服务器 IP 地址uint32_t siaddr_nip;// 转发代理(网关)IP 地址,DHCP 客户端发出请求报文后经过的第一个 DHCP 中继的 IP 地址uint32_t gateway_nip; uint8_t chaddr[16];   // DHCP 客户端的 MAC 地址。uint8_t sname[64];    // 为客户端分配 IP 地址的服务器名称(DNS 域名格式)uint8_t file[128];    //DHCP 服务器为 DHCP 客户端指定的启动配置文件名称及路径信息。uint32_t cookie;      /* DHCP magic bytes: 99,130,83,99 decimal */// 可选选项,格式为“代码+长度+数据”。uint8_t options[DHCP_OPTIONS_BUFSIZE + CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS];
};
struct client_data_t {uint8_t client_mac[6];          // MAC地址IF_FEATURE_UDHCP_PORT(uint16_t port;)int ifindex;                    // 要使用的接口的索引号uint32_t xid;uint8_t opt_mask[256 / 8];      // 要发送的选项的位掩码const char *interface;          // 要使用的接口的名称char *pidfile;                  // 可选存储进程IDconst char *script;             // 在dhcp事件中运行的用户脚本struct option_set *options;     // 要发送到服务器的DHCP选项列表llist_t *envp;                  // 用于环境变量的DHCP选项列表unsigned first_secs;unsigned last_secs;int sockfd;smallint listen_mode;smallint state;
} FIX_ALIASING;

格外选项格式

struct dhcp_optflag {uint8_t flags;uint8_t code;
};
struct dyn_lease {/* 租约到期时的Unix时间。按主机顺序保存在内存中。写入文件时,转换为网络顺序并进行调整(减去当                * 前时间)。leasetime_t uint32_t*/leasetime_t expires;/* "nip": IP in network order */uint32_t lease_nip;/* MAC地址 */uint8_t lease_mac[6];char hostname[20];uint8_t pad[2];/* total size is a multiply of 4 */
} PACKED;
struct dhcp_scan_state {int overload;int rem;uint8_t *optionptr;
};

Busybox DHCP数据结构相关推荐

  1. 域名、服务器、IP之间的关系

    文章转载自:[https://www.jianshu.com/p/c3d3f6629c13](https://www.jianshu.com/p/c3d3f6629c13) 本文主要针对域名.服务器和 ...

  2. 嵌入式linux dhcp移植,嵌入式linux中的dhcp服务器

    嵌入式系统下,用开发板建立dhcp服务器 1.重新编译内核,添加对dhcp的支持 2.busybox是否带有dhcp的应用,如无,则需要重新编译busybox,或者直接下一个独立的也可. 3.dhcp ...

  3. 高性能dhcp服务器,基于线程池机制的高性能DHCP服务器研究与实现

    摘要: 随着互联网的蓬勃发展,IP地址资源越来越紧张.DHCP服务是在现有IPv4协议基础上解决IP地址资源短缺问题的有效途径. 目前,多数DHCP服务器是单线程运行,串行处理客户请求的.其应用于大型 ...

  4. udhcp源码详解(五) 之DHCP包--options字段

    中间有很长一段时间没有更新udhcp源码详解的博客,主要是源码里的函数太多,不知道要不要一个一个讲下去,要知道讲DHCP的实现理论的话一篇博文也就可以大致的讲完,但实现的源码却要关心很多的问题,比如说 ...

  5. dhcp计算机毕业论文,基于线程池机制的高性能DHCP服务器研究与实现-计算机科学与技术专业毕业论文.docx...

    文档介绍: 西北丁业大学硕士学位论文 摘要摘 要随着互联网的蓬勃发展,IP地址资源越来越紧张.DHCP服务是在现有IPv4协议基础上解决IP地址资源短缺问题的有效途径.目前,多数DHCP服务器是单线程 ...

  6. 嵌入式linux通过DHCP自动获取IP地址实现

    http://blog.chinaunix.net/uid-17188120-id-2820863.html 前提:系统已经实现DNS(即使用ping www.baidu.com测试时能ping通). ...

  7. 根文件系统构建(BusyBox方式)

    目录 根文件系统简介 BusyBox构建根文件系统 BusyBox简介 编译BusyBox构建根文件系统(生成bin.sbin.usr.linuxrc) 向根文件系统添加lib库 创建其他文件夹 根文 ...

  8. 移植wpa_supplicant软件与DHCP软件解密WPA/WPA2 加密的无线网络

    加qq1126137994与微信:liu1126137994 一起学习更多技术! 现在的无线网络基本都是 WPA/WPA2 加密方式的,当我们在嵌入式Linux平台要实现无线网卡连接无线网时,我们需要 ...

  9. dhcp服务器能为客户端提供哪些信息,为DHCP客户端提供DHCP服务器的MAC [关闭]

    Background info: 我有一套专有的嵌入式Linux网络设备,其中一个将配置为DHCP服务器,其余的将是DHCP客户端 . 我需要让客户端设备只接受来自服务器设备的DHCP租约,忽略同一L ...

最新文章

  1. python 文案自动生成_Python自动化测试如何自动生成测试用例?
  2. 零基础入门学习Python(20)-lambda表达式、filter()、map() BIF
  3. 坑!只要年轻博士,薪资按考核结果发放, 高校的博后制度,究竟有多少门道?...
  4. DOS 网络命令之 netstat
  5. mysql 存储过程 条件_mysql sql存储过程条件定义与处理
  6. 前端笔试题面试题记录(下)
  7. 加权回归估计_比率估计与回归估计
  8. matlab 复数求模长,matlab计算带有复数的函数,最后求复数函数的模,结果里面却有...
  9. WPF 动态图片按钮
  10. 图论——最小生成树:Prim算法及优化、Kruskal算法,及时间复杂度比较
  11. 隐藏与显现_惠州楼盘冷热不均价格涨跌互现 差异化调控作用显现
  12. 企业应该了解的ISO27001体系建设指导
  13. 房贷利率有没有套路?用Python版解读!
  14. 支付宝支付时提示“长时间没操作,请重新发起请求”的错误处理
  15. cpu高对计算机有什么影响吗,电脑CPU性能高低有什么影响 怎么提高电脑CPU性能...
  16. 【 FPGA 】玩玩带有异步复位,同步使能的D触发器的两种实现方式
  17. 部署https后访问提存在安全隐患NET::ERR_SSL_OBSOLETE_VERSION
  18. R语言基础之R语言入门
  19. 微信支付账号服务商快速进件H5源码
  20. k8s!Ingress服务

热门文章

  1. android hide qq红包,伪装QQ红包绕过URL检测
  2. 防关联指纹浏览器是什么?对亚马逊多账号管用吗?
  3. appserv mysql 密码_AppServ8.0安装教程,AppServ8.0安装后Mysql密码不对怎么办?
  4. 仙剑考卷 (测试一下你迷仙剑的程度有多深)
  5. 关于QQ一些功能的实现
  6. 笔记本电脑无法设置连接wifi,检测到适配器 Realtek 8821CE Wireless LAN 802.11ac PCI-E NIC 遇到与驱动程序或硬件相关的问题
  7. 手机百度输入法暴露隐私
  8. 职位名称:初级,罗马数字和难以捉摸的“ Python建筑师”
  9. 人生苦短,快学python
  10. LDA工程实践之算法篇之(一)算法实现正确性验证(转)