设置MAC地址和动态IP

设置MAC地址

项目中需要设置以e0:aa:c8开头的MAC地址,shell脚本如下:

#get mac addr
MAC=`LANG=C ifconfig eth0 | awk '/HWaddr/{ print $5 }'`
#convert to lower case
MAC="$(echo $MAC | tr '[:upper:]' '[:lower:]')"
#path to save mac addr
pathname="/etc/init.d/mac.txt"
#get current saved  mac addr
if [ ! -f "$pathname" ]; 
then
	touch $pathname
	echo $MAC > $pathname
else
	read MAC < $pathname
fi
if [ "${MAC:0:8}" != "e0:aa:c8" ];                                      
then                                                                    
	MAC="e0:aa:c8:"`echo $RANDOM | md5sum | sed 's/\(..\)/&:/g' | cut -c1-8`
        echo $MAC > $pathname
fi
ifconfig eth0 192.168.1.12 netmask 255.255.255.0 hw ether $MAC
route add default gw 192.168.1.1

中心思想:从pathname中读取当前MAC地址,如果没有读到,就去获取当前MAC地址;当MAC地址不是以ea:00:c8开头的话就去随机获取一个这样的MAC地址,然后设置MAC地址。

利用DHCP设置动态IP

首先要配置内核,使其支持DHCP

[*] Networking support --->
            Networking options --->
                        [*] IP: DHCP support

然后配置busybox

Networking Utilities --->
            [*] udhcp client (udhcpc)

最后,只需要运行:

sudo udhcpc

注意:需要确保板子所在的局域网中存在dhcp服务器,假设需要使用一台ubuntu的主机做服务器,则按照如下步骤:

sudo apt-get install udhcpd

接着可以根据自己需要修改配置文件:

sudo vi /etc/udhcpd.conf

主要修改3个地方:start/end/option dns

猜你喜欢

转载自blog.csdn.net/saqula/article/details/85317872