DHCP:解析开发板上动态获取ip的2种实现方法详解
DHCP
动态主机设置协议(Dynamic Host Configuration Protocol, DHCP)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:
1.给内部网络或网络服务供应商自动分配IP地址
2.给用户给内部网络管理员作为对所有计算机作中央管理的手段。
方法一:dhclient
1.下载
https://www.isc.org/software/dhcp/
2.解压
tar-zxvf dhcp-3.1.3.tar.gz
3.配置
cddhcp-3.1.3
./configure
成功之后生成work.linux-2.2文件夹.
4.编译
make "CC=/opt/hisi-linux/x86-arm/gcc-3.4.3-uClibc-0.9.28/usr/bin/arm-hismall-linux-gcc-static"
可以在work.linux-2.2/client目录,也可以在dhcp-3.1.3目录下make,
5.拷贝
在work.linux-2.2\client编译生成dhclient。
拷贝配置文件dhcp-3.1.3/client/dhclient.conf和/dhcp-3.1.3/client/scripts/linux 到开发板的/sbin/目录下,并linux文件重命名为dhclient-script,并修改该文件的第一行#! /bin/bash 为#! /bin/sh,保存后,修改权限 chmod +x /sbin/dhclient-script
6.创建目录
mkdir-p /var/state/dhcp
在/var目录下创建state目录,再在state目录下创建dhcp目录。
7.运行
dhclient ra0
结果:
InternetSystems Consortium DHCP Client V3.1.3
Copyright2004-2009 Internet Systems Consortium.
Allrights reserved.
Forinfo, please visit https://www.isc.org/software/dhcp/
Listeningon LPF/ra0/7c:dd:90:25:9f:a9
Sendingon LPF/ra0/7c:dd:90:25:9f:a9
Sendingon Socket/fallback
DHCPDISCOVERon ra0 to 255.255.255.255 port 67 interval 6
DHCPDISCOVERon ra0 to 255.255.255.255 port 67 interval 12
DHCPDISCOVERon ra0 to 255.255.255.255 port 67 interval 14
DHCPOFFERfrom 192.168.1.1
DHCPREQUESTon ra0 to 255.255.255.255 port 67
DHCPACKfrom 192.168.1.1
bound to 192.168.1.31 -- renewal in 282261 seconds.
方法二、udhcpc
udhcpc是一个面向嵌入式系统的非常小的DHCP客户端,字母的缩写微- DHCP -客户端(μDHCPc)。
1.udhcpc -i eth0
udhcpc只是获取一个IP,我们需要把\busybox-1.1.2\examples\udhcp下的脚本simple.script改名为default.script,放在开发板上的/usr/share/dhcpc/目录下,才能将获取的IP写到指定的网卡中。
2.ifconfig