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

(0)

相关推荐

  • linux下dhcp服务配置教程

    1.DHCP简介 (1)DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个简化主机IP地址分配管理的TCP/IP标准协议,用户可以利用DHCP服务器管理动态的IP地址分配及其他相关的环境配置工作,如:DNS服务器.WINS服务器.Gateway(网关)的设置. (2)DHCP基于客户/服务器模式.当DHCP客户端启动时,它会自动与DHCP服务器通信,由DHCP服务器为DHCP客户端提供自动分配IP地址的服务. (3)安装了DHCP服务软件的

  • linux下的dhcp服务的完全配置(图文详解)

    试验环境如下图所示: 服务器ip:192.168.0.1 试验要求:要求linux dhcp 服务器实现给linux客户机分配ip地址. 服务器软件包:dhcp-3.0.1-12_EL.I386 (当然其它版本的也可以)软件包默认在RHEL4的第四种安装光盘中. 主配置文件:dhcp.conf 默认情况下该文件没有在dhcp软件包中,需要手动建立. 服务器的配置: 1 挂载和安装dhcp软件包,如下图所示: 2编辑配置文件(由于配置文件安装软件包后并不会自动建立需要我们手动建立)只需打如下些命令

  • Centos6.5全自动安装 vsftpd+dhcp+nfs+tftp

    步骤 1.mount /dev/sr0 /media/ 2.安装所需要的软件 安装并配置tftp服务 yum install tftp tftp-server vsftpd dhcp syslinux nfs-utils vim /etc/xinetd.d/tftp service tftp { disable = no socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd se

  • DNS、DHCP的备份恢复bat(批处理自动实现)

    现在的服务器上运行了很多系统服务,虽然中间没有出过什么问题,但是还是怕,要是出了问题,就是好几天的时间没有了,累4人的事情啊.所以要把什么东西都backup一下.ghost备份的是系统,但是服务的配置是随时在变化的,总不能时不时的来个ghost吧,再说没有显示器,很麻烦的. 研究了一个下午,终于实现了DNS和DHCP的自动备份. DNS的备份 1.停止DNS服务 2.打开regedit,找到HKLM\system\currentcontrolset\services\dns 3.将DNS这个分支

  • 解析DHCP

    何谓DHCP? 动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)从原有的BootP协议发展而来,原来的目的是为无盘工作站分配IP地址的协议,当前更多地用于对多个客户计算机集中分配IP地址以及IP地址相关的信息的协议,这样就能将IP地址和TCP/IP的设置统一管理起来,而避免不必要的地址冲突的问题,因此常常用在网络中对众多DOS/Windows计算机的管理方面,节省了网络管理员手工设置和分配地址的麻烦. DHCP提供了三种IP地址分配机制: ●

  • 解读DHCP故障提升网络效率

    在规模较大的局域网中,工作站的IP地址通常都是从DHCP服务器中动态获取得到的,这样可以有效地节省IP地址资源;不过在与DHCP服务器长期接触的过程中,我们或许会遇到各种与DHCP服务有关的网络故障,这些故障极大地影响了局域网网络的运行效率.有鉴于此,本文下面就对几则常见的与DHCP服务有关的网络故障进行解读,并为各种故障提供相应的应对办法,希望这些内容能帮助各位更好地管理好局域网! 1.消除授权失败故障 有一网络中的服务器不小心死机了,可是重新启动服务器系统之后,却发现其中的DHCP服务器无法

  • DHCP服务

    在常见的网络术语中,我们常会听到DHCP这个词.DHCP就是Dynamic Host Configuration Protocol(动态主机配置协议)的缩写. 一.我们为什么要使用DHCP服务 在常见的小型网络中(例如网吧和学生宿舍网),网络管理员都是采用手工分配IP地址的方法,但是在大中型网络中,例如超过了100台计算机的网络,为每一台计算机手工分配一个IP地址,将会加重了网络管理员的负担,如果管理员不小心时,就会导致IP地址分配错误.因此,在大中型网络中使用DHCP服务是非常有效率的. 在理

  • Win2003 Server DHCP服务器安装图解教程

    小张所在公司的其中一个局域子网Saes.grfwgz.com,因为均为市场部门员工,虽然员工数有许多,但一般来说长期均只有一小部分员工在单位使用网络,所以为了节省IP地址资源,IP地址采用了DHCP自动分配方式,其网段为192.168.0.129~192.168.0.158. 下面是具体的配置方法. 因为DHCP服务器的配置可以有不同途经,一种是新添加DHCP服务器,另一种则是在现有DHCP服务器中添加新的作用域,当然也可以修改现有作用域.我们先介绍前者. 一.添加新的DHCP服务器 如果原服务

  • 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.gz3.配置    cddhcp-3.1.

  • JSP 获取用户的真实IP两种实现方法详解

    JSP 获取用户的真实IP两种实现方法详解 在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了 Apache,Nagix等反向代理软件就不能获取到客户端的真实IP地址了.如果使用了反向代理软件,用 request.getRemoteAddr()方法获取的IP地址是:127.0.0.1或 192.168.1.110,而并不是客户端的真实IP. 经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿

  • C#获取本地IP的四种方式示例详解

    1.第一种方式 采用System.Net.Dns的GetHostAddress的方式,具体请看代码: /// <summary> /// 网络不通畅可以获取 /// 不过能获取到具体的IP /// </summary> /// <returns></returns> public static List<IPAddress> GetByGetHostAddresses() { try { IPAddress[] adds = Dns.GetHos

  • JS实现获取GIF总帧数的方法详解

    目录 前言 写在前面 思路分析 什么是Gif 组成结构 解析原理 数据块分析 Header Block Logical Screen Descriptor Global Color Table Graphics Control Extension Image Descriptor Image Data 实现代码 测试用例 插件地址 前言 有一个Gif图片,我们想要获取它的总帧数,超过一定帧数的图片告知用户不可上传,在服务端有很多现成的库可以使用,这种做法不是很友好,前端需要先将gif上传至服务端

  • vue 父组件通过$refs获取子组件的值和方法详解

    前言 在vue项目中组件之间的通讯是很常见的问题,同时也是很重要的问题,我们大致可以将其分为三种情况: 父传子:在父组件中绑定值,在子组件中用props接收 子传父:在父组件中监听一个事件,在子组件中利用$emit触发这个事件并带上数据作为第二个参数,这时父组件中监听事件的回调函数就会被调用,回调函数的参数就是子组件带上来的数据,这样就可以在父组件中使用子组件的数据了, 兄弟之间的传递:我们可以使用事件总线(eventBus)来轻松的解决,其实就是发布订阅者模式 今天我们要看的是父组件如何直接调

  • 获取Django项目的全部url方法详解

    在为一个项目添加权限时,遇到一个问题,就是为项目所有的url设置权限,但是一个一个手动输入太麻烦了,所以考虑用代码获取到一个项目所有的url 首先,考虑到项目最外层的urlpartterns,因为所有的url都要通过这里 urlpatterns = [ # url(r'^admin/', admin.site.urls), url(r'^arya/', site.urls), url(r'^index/', index), ] 先循环打印一下这个列表,看一下拿到的结果: <RegexURLRes

  • Golang反射获取变量类型和值的方法详解

    目录 1. 什么是反射 2. reflect.Type 2.1 类型Type和种类Kind 2.2 引用指向元素的类型 2.3 结构体成员类型 3. reflect.Value 3.1 结构体的成员的值 3.2 遍历array.slice 3.3 遍历map 4. 反射的三大定律 4.1 从interface到反射对象 4.2 从反射对象到interface 4.3 通过反射修改对象,该对象值必须是可修改的 1. 什么是反射 反射是程序在运行期间获取变量的类型和值.或者执行变量的方法的能力. G

  • iOS 获取设备唯一标示符的方法详解

    在开发中会遇到应用需要记录设备标示,即使应用卸载后再安装也可重新识别的情况,在这写一种实现方式--读取设备的UUID(Universally Unique Identifier)并通过KeyChain记录. 首先iOS中获取设备唯一标示符的方法一直随版本的更新而变化.iOS 2.0版本以后UIDevice提供一个获取设备唯一标识符的方法uniqueIdentifier,通过该方法我们可以获取设备的序列号,这个也是目前为止唯一可以确认唯一的标示符.好景不长,因为该唯一标识符与手机一一对应,苹果觉得

  • C语言动态内存泄露常见问题内存分配改进方法详解

    目录 一.例题 二.2种改进方法 法1:二级指针(传址调用) 法2:返回指针 总结 一.例题 试问该段代码能打印什么,或者不能打印什么,说出理由 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> #include<stdlib.h> void getmemory(char*p) { p = (char*)malloc(100); } void test() { char*str =

  • JavaScript获取URL中参数querystring的方法详解

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

随机推荐