- 論壇徽章:
- 0
|
建立4個文件 /bin/arptab /bin/arpbd /bin/arp_time /bin/showarp (權限為可執(zhí)行:chmod +x )
⑴/bin/arptab
#內容綁定IP后自動添加
⑵綁定管理:命令格式 arpbd <IP_地址> <此IP能使用的天數(shù)>
/bin/arpbd內容:
#!/bin/bash
start()
{
if [ "$ip_addr" = "" ];
then
echo "CU(www.chinaunix.net):lihc16888 QQ:89789165"
echo "IP NOT NULL !"
echo "usage : arpbd <IP_ADDR> <TIME>"
echo " : arpbd 192.168.1.2 30"
exit;
else
if [ "$term" = "" ];
then
echo "CU(www.chinaunix.net):lihc16888 QQ:89789165"
echo "TIME NOT NULL !"
echo "usage : arpbd <IP_ADDR> <TIME>"
echo " : arpbd 192.168.1.2 30"
exit;
else
try=`echo $term |awk '{print $1-1}'`
if [ "$try" = "-1" ];
then
echo "CU(www.chinaunix.net):lihc16888 QQ:89789165"
echo "TIME TAPE ERROR !"
echo "usage : arpbd <IP_ADDR> <TIME>"
echo " : arpbd 192.168.1.2 30"
exit;
fi
fi
fi
#解除當前IP綁定 ,若不解除則不能獲取真正的MAC地址!
#通過PING建立連路!以便獲得MAC地址。 提示顯示在第5屏。
arp -d $ip_addr >/dev/tty5
ping -c 3 $ip_addr >/dev/tty5
mac_addr=`arp $ip_addr|awk 'BEGIN { FS = " " }{if (NR == 2) {print $3}}'`
if [ "$mac_addr" = "" ] ;
then
clear
echo " ------------------"
echo " $ip_addr"
echo " ------------------"
echo " MAC ERROR ! "
echo " ------------------"
/bin/arptab >/tmp/tty5
exit;
fi
#判斷獲取的MAC不能等于 你的網卡名稱, 這是因為之前把網卡綁定成00:00:00:00:00:00 ,本腳本執(zhí)行后才解除 用ARP命令獲取MAC有可能獲取的是網卡名稱!
#!!!!!!!!!!!!根據(jù)實際情況修改 "eth0" ,例如你要綁定的IP在系統(tǒng)中用的網卡是eth1 等等 則修改成eth1。
mac_addr=`arp $ip_addr|awk 'BEGIN { FS = " " }{if (NR == 2) {print $3}}'`
if [ "$mac_addr" = "eth0" ];
then
clear
echo " ------------------"
echo " $ip_addr"
echo " ------------------"
echo " MAC ERROR ! "
echo " ------------------"
/bin/arptab >/tmp/tty5
exit;
fi
#獲取網卡真實的MAC地址,及arptab中的MAC地址 如果獲取的MAC地址 ,則修改arptab中的MAC地址,完成提示OK!
arpbd_date=`date "+%y%m%d"`
>/tmp/arptmp
awk -F" " '$3 != "'$ip_addr'" {print $1" "$2" "$3" "$4" "$5" "$6}' /bin/arptab >>/tmp/arptmp
echo "arp -s $ip_addr $mac_addr #$arpbd_date $term" >>/tmp/arptmp
cat /tmp/arptmp >/bin/arptab
/bin/arptab >/tmp/tty5
clear
echo " ------------------"
echo " $ip_addr"
echo " ------------------"
echo " OK! "
echo " ------------------"
exit;
}
case "$1 $2" in
*)
ip_addr="$1"
term="$2"
start
;;
esac
#end
⑶添加 系統(tǒng)凌晨0點自動執(zhí)行/bin/arp_time任務
crontab -e
添加 0 0 * * * /bin/arp_time
⑷#有效天數(shù)自動減1, 天數(shù)為0時,把此IP綁定成"00:00:00:00:00:00"
#此命令 不要手動 執(zhí)行。
/bin/arp_time
>/tmp/arptime
awk -F" " '$6 > "0" {print $1" "$2" "$3" "$4" "$5" "$6-1}' /bin/arptab >>/tmp/arptime
awk -F" " '$6 <= "0" {print $1" "$2" "$3" "$4" "$5" "$6}' /bin/arptab >>/tmp/arptime
cat /tmp/arptime >/bin/arptab
>/tmp/arptime
awk -F" " '$6 > "0" {print $1" "$2" "$3" "$4" "$5" "$6}' /bin/arptab >>/tmp/arptime
awk -F" " '$6 <= "0" {print $1" "$2" "$3" ""00:00:00:00:00:00"" "$5" ""0"}' /bin/arptab >>/tmp/arptime
cat /tmp/arptime >/bin/arptab
/bin/arptab
#end
⑸#顯示某ip狀態(tài)
# showarp IP地址
/bin/showarp
文件內容:
#!/bin/bash
start()
{
cat /bin/arptab |grep $ip_addr
}
case "$1" in
*)
ip_addr="$1"
start
;;
esac
#end |
|