DHCP:解析开发板上动态获取ip的2种实现方法详解_C 语言

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

时间: 2024-10-29 09:31:39

DHCP:解析开发板上动态获取ip的2种实现方法详解_C 语言的相关文章

解析在main函数之前调用函数以及对设计的作用详解_C 语言

前几天为新员工写一个简单的测试框架,可让他们方便的写测试用例并且执行.期间遇到一个问题就是如何让他们增加测试用例而用不影响测试框架的代码?c++的单件模式可以解决这个问题,但是其中一个难点是要在main之前注册单件.c++可以通过构造函数来实现注册,c如何注册?最后查了下资料,原来可以定义在main之前调用的函数!有了这个特性可以改善c的模块化设计.特性介绍:如果想定义在main函数之前调用的函数,可以在函数的声明之后加上一句"__attribute__((constructor))"

解析c++中参数对象与局部对象的析构顺序的详解_C 语言

下面是c++的源码: 复制代码 代码如下: class X  {public:   int i;   int j;   ~X() {} };void f(X x) {  X x1;  x.i = 1;  x.j = 2; }int main() {    f(X());} 下面是main函数的汇编码: 复制代码 代码如下: _main    PROC ; 15   : int main() {     push    ebp    mov    ebp, esp    sub    esp, 8

C++的静态联编和动态联编详解_C 语言

一.概述: 通常来说联编就是将模块或者函数合并在一起生成可执行代码的处理过程,同时对每个模块或者函数调用分配内存地址,并且对外部访问也分配正确的内存地址,它是计算机程序彼此关联的过程.按照联编所进行的阶段不同,可分为两种不同的联编方法:静态联编和动态联编. 静态联编是指在编译阶段就将函数实现和函数调用关联起来,因此静态联编也叫早绑定,在编译阶段就必须了解所有的函数或模块执行所需要检测的信息,它对函数的选择是基于指向对象的指针(或者引用)的类型,C语言中,所有的联编都是静态联编,并且任何一种编译器

Linux线程管理必备:解析互斥量与条件变量的详解_C 语言

   做过稍微大一点项目的人都知道,力求程序的稳定性和调度的方便,使用了大量的线程,几乎每个模块都有一个专门的线程处理函数.而互斥量与条件变量在线程管理中必不可少,任务间的调度几乎都是由互斥量与条件变量控制.互斥量的实现与进程中的信号量(无名信号量)是类似的,当然,信号量也可以用于线程,区别在于初始化的时候,其本质都是P/V操作.编译时,记得加上-lpthread或-lrt哦.    有关进程间通信(消息队列)见:进程间通信之深入消息队列的详解 一.互斥量 1. 初始化与销毁:    对于静态分

标准CSV格式的介绍和分析以及解析算法实例详解_C 语言

     CSV是一种古老的数据传输格式,它的全称是Comma-Separated Values(逗号分隔值).出生在那个标准缺失的蛮荒年代,CSV的标准一直(到2005年)是NULL--世间存在着N种CSV格式,它们自成体系,相互不兼容.比如我们从名字可以认为CSV至少是一种使用逗号分隔的格式,但是实际上,有的CSV格式却是使用分号(;)去做分隔.假如,不存在一种标准,那么这东西最终会因为碎片化而发展缓慢,甚至没落.本文讨论的CSV格式是基于2005年发布的RFC4180规范.我想,在这个规范

JavaScript获取URL中参数querystring的方法详解_javascript技巧

一. 获取url的querystring参数 获取url的querystring参数的两种方法如下: 1.1 方法一:正则匹配 //获取url中的参数 function getQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", i); // 匹配目标参数 var result = window.location.search.substr(1).

apache多域名多ip多端口的配置方法详解

#由于是多 ip 监听同一个端口所以这样写  代码如下 复制代码 Listen 80 #若是多ip 多端口 则是 #Listen 192.170.2.1:80 #Listen 192.170.2.5:8000 #由于使用多ip NameVirtualHost这样设置 NameVirtualHost 1.2.3.4:80 NameVirtualHost 5.6.7.8:80 #第一个ip给域名www.111cn.net  DocumentRoot /www/111cn.net/ ServerNam

解析内存对齐 Data alignment: Straighten up and fly right的详解_C 语言

    为了速度和正确性,请对齐你的数据.     概述:对于所有直接操作内存的程序员来说,数据对齐都是很重要的问题.数据对齐对你的程序的表现甚至能否正常运行都会产生影响.就像本文章阐述的一样,理解了对齐的本质还能够解释一些处理器的"奇怪的"行为.   内存存取粒度    程序员通常倾向于认为内存就像一个字节数组.在C及其衍生语言中,char * 用来指代"一块内存",甚至在JAVA中也有byte[]类型来指代物理内存.   Figure 1. 程序员是如何看内存的

VC解析XML文件-CMarkup的使用详解_C 语言

VC解析XML文件的工具有很多,CMarkup, tinyXML,还有IBM的,MS的等等.据说tinyXML很好,可能字符集问题,我编译不了.所以就用CMarkup来解析,使用过后,觉得非常不错,使用起来很方便.CMarkup下载地址:http://www.firstobject.com/发现网上有方法很法,我就摘下来了 复制代码 代码如下: //----------UserInfo.xml--------------    xml version="1.0" encoding=&q