udhcpc scripts
Here's some debian scripts I wrote for
udhcpc
0.9.6. I wanted to make
it easy to run local scripts for DHCP changes so I created
/etc/udhcpc.d. All the /usr/share/udhcpc/default.* scripts
have been merged into /etc/udhcpc.d/S50default. S99local
is an example script that patches resolv.conf and calls
a DNS update script.
/etc/init.d/
udhcpc
/etc/
udhcpc.script
/etc/udhcpc.d/
S50default
/etc/udhcpc.d/
S99local
Last modified: Mon Feb 4 10:23:49 PST 2002
单调的分割线
http://udhcp.busybox.net/README.udhcpc
udhcp client (udhcpc)
--------------------
The udhcp client negotiates a lease with the DHCP server and notifies
a set of scripts when a leases is obtained or lost.
command line options
-------------------
The command line options for the udhcp client are:
-c, --clientid=CLIENTID Client identifier
-H, --hostname=HOSTNAME Client hostname
-h, Alias for -H
-f, --foreground Do not fork after getting lease
-b, --background Fork to background if lease cannot be
immediately negotiated.
-i, --interface=INTERFACE Interface to use (default: eth0)
-n, --now Exit with failure if lease cannot be
immediately negotiated.
-p, --pidfile=file Store process ID of daemon in file
-q, --quit Quit after obtaining lease
-r, --request=IP IP address to request (default: none)
-s, --script=file Run file at dhcp events (default:
/usr/share/udhcpc/default.script)
-v, --version Display version
If the requested IP address cannot be obtained, the client accepts the
address that the server offers.
udhcp client scripts
-------------------
When an event occurs, udhcpc calls the action script. The script by
default is /usr/share/udhcpc/default.script but this can be changed via
the command line arguments. The three possible arguments to the script
are:
deconfig: This argument is used when udhcpc starts, and
when a leases is lost. The script should put the interface in an
up, but deconfigured state, ie: ifconfig $interface 0.0.0.0.
bound: This argument is used when udhcpc moves from an
unbound, to a bound state. All of the paramaters are set in
enviromental variables, The script should configure the interface,
and set any other relavent parameters (default gateway, dns server,
etc).
renew: This argument is used when a DHCP lease is renewed. All of
the paramaters are set in enviromental variables. This argument is
used when the interface is already configured, so the IP address,
will not change, however, the other DHCP paramaters, such as the
default gateway, subnet mask, and dns server may change.
nak: This argument is used with udhcpc receives a NAK message.
The script with the deconfig argument will be called directly
afterwards, so no changes to the network interface are neccessary.
This hook is provided for purely informational purposes (the
message option may contain a reason for the NAK).
The paramaters for enviromental variables are as follows:
$HOME - The set $HOME env or "/"
$PATH - the set $PATH env or "/bin:/usr/bin:/sbin:/usr/sbin"
$1 - What action the script should perform
interface - The interface this was obtained on
ip - The obtained IP
siaddr - The bootp next server option
sname - The bootp server name option
boot_file - The bootp boot file option
subnet - The assigend subnet mask
timezone - Offset in seconds from UTC
router - A list of routers
timesvr - A list of time servers
namesvr - A list of IEN 116 name servers
dns - A list of DNS server
logsvr - A list of MIT-LCS UDP log servers
cookiesvr - A list of RFC 865 cookie servers
lprsvr - A list of LPR servers
hostname - The assigned hostname
bootsize - The length in 512 octect blocks of the bootfile
domain - The domain name of the network
swapsvr - The IP address of the client's swap server
rootpath - The path name of the client's root disk
ipttl - The TTL to use for this network
mtu - The MTU to use for this network
broadcast - The broadcast address for this network
ntpsrv - A list of NTP servers
wins - A list of WINS servers
lease - The lease time, in seconds
dhcptype - DHCP message type (safely ignored)
serverid - The IP of the server
message - Reason for a DHCPNAK
tftp - The TFTP server name
bootfile - The bootfile name
additional options are easily added in options.c.
note on udhcpc's random seed
---------------------------
udhcpc will seed its random number generator (used for generating xid's)
by reading /dev/urandom. If you have a lot of embedded systems on the same
network, with no entropy, you can either seed /dev/urandom by a method of
your own, or doing the following on startup:
ifconfig eth0 > /dev/urandom
in order to seed /dev/urandom with some data (mac address) unique to your
system. If reading /dev/urandom fails, udhcpc will fall back to its old
behavior of seeding with time(0).
signals accepted by udhcpc
-------------------------
udhcpc also responds to SIGUSR1 and SIGUSR2. SIGUSR1 will force a renew state,
and SIGUSR2 will force a release of the current lease, and cause udhcpc to
go into an inactive state (until it is killed, or receives a SIGUSR1). You do
not need to sleep between sending signals, as signals received are processed
sequencially in the order they are received.
compile time options
-------------------
options.c contains a set of dhcp options for the client:
name[10]: The name of the option as it will appear in scripts
flags: The type of option, as well as if it will be requested
by the client (OPTION_REQ)
code: The DHCP code for this option
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/17258/showart_1090833.html
分享到:
相关推荐
文件系统使用udhcpc获取IP,可是ifconfig查看网卡信息时,IP地址没有改变。
udhcp源码,直接make即可编译gcc版本,如果需要交叉编译,需要修改makefile里面的CROSS_COMPILE即可,亲测可用哟
它依赖于相近版本的busybox,如果需要下载busybox,请移步https://download.csdn.net/download/hannibaychty/85593276
#udhcpc #config ip netmask gw #ifconfig eth0 172.20.223.123 netmask 255.255.255.0 #route add default gw 172.20.223.254 serverip=$1 serverpath=$2 localpath=$3 echo "usage:./mount_nfs serverip server...
自动获得IP地址
udhcp源码详解 udhcp源码详解 udhcp源码详解 udhcp源码详解
解决无法自动获取IP导致不能上网的问题。
拷贝到开发板/usr/share/udhcpc/目录下,执行udhcpc -i eth0,实现动态获取IP地址
udhcp-0.9.8 在高版本编译器下会有小bug,已经修复。
在嵌入式Linux下修改文件进行设置开机启动时静态IP或者动态IP
背景:执行shell命令,抓取shell返回信息中的所需信息,已udhcpc为例获取DNS的地址。 暂不作处理,执行udhcpc。 使用grep过滤掉无用信息,执行 udhcpc | grep “DNS” 使用sed抓取第二行,-n ‘2p’代表第二行,-n...
Quectel Linux ConnectManager SR01A01V21 用来替换传统的3G ppp拨号,拨号速度快,但只可以用于EC20系列的拨号,给需要的人吧!!
[收集于网络,仅供学习,侵权立删], dhcp实现,通过DHCP协议,从server端获取动态的不固定的IP地址。
源码在Centos 7.6下测试编译成功,自动识别配置文件,需要busybox udhcpc命令,如果是PC平台,需要下载busybox源码编译,然后export一下可执行文件busybox所在路径即可。
1.dhcp v4 server:执行程序 /bin/udhcpd -S /var/udhcpd/udhcpd.conf 2.dhcp v4 client:执行程序 /bin/udhcpc -i nas0_1 -p /var/run/udhcpc.pid.nas0_1 -s /etc/scripts/udhcpc.sh -H RTK_GW
虚拟机备份转移后,网络启动异常,提示“SIOCSIFADDR: No such device” he problem lies in the fact that ethernet MAC addresses are cached. You need to remove a file to clear the cached value: ...
4. MentoHUST没有条件测试,如不能自动获取IP,请把Web界面的DHCP script的值由“udhcpc -i”改成“udhcpc -renew”试试。 5. 关于extroot(既用U盘引导系统),没想到现在这么简单了。 简单说下:先把U盘在电脑里...
路由器在修改了无线密码或者是DNS地址后,需要重启路由器才会生效。那么,TP-Link无线路由器怎么重启呢?针对此问题,本文就为大家图文介绍TP-Link路由器的重启方法
等待关联成功,连接成功之后,通过udhcpc命令获取地址,并测试一下ping外网是否可通。 蓝牙功能配置与操作: 通过命令hciconfighci0 up,使能之后就可以使用蓝牙设备。 启动蓝牙设备服务进程 /usr/lib/bluez5/...
4. MentoHUST没有条件测试,如不能自动获取IP,请把Web界面的DHCP script的值由“udhcpc -i”改成“udhcpc -renew”试试。 5. 关于extroot(既用U盘引导系统),没想到现在这么简单了。 简单说下:先把U盘在电脑里...