接上篇文章:
使用NMAP扫描局域网内存活设备的IP地址和MAC地址 - 简书
https://www.jianshu.com/p/21328c4ba2af
脚本内容:
#版本1.0
#!/bin/bash
FILE='vlan1.txt' #读取的文件
while read i
do
ip=$(echo "$i"|awk -F ' ' '{print $1}')
mac=$(echo "$i"|awk -F ' ' '{print $2}')
echo "$mac" - $ip #此处显示变量的值,其实可以省略
name=$RANDOM #名字取RANDOM随机数
#手动输入的例子
#read -p "Please Input HOSTNAME:" name
#read -p "Please Input MAC:" mac
#read -p "Please input IP:" ip
#写入配置文件
cat >>vlan1.conf<<EOF
host PC$name {
hardware ethernet $mac;
fixed-address $ip;
}
EOF
done<$FILE
#版本2.0
#!/bin/bash
read -p "Please input the file name to read(请输入需要读取的文件名):" File1
#FILE='vlan1.txt' #读取的文件
FILE=$File1
while read i
do
mac=$(echo "$i"|awk -F ' ' '{print $1}')
ip=$(echo "$i"|awk -F ' ' '{print $2}')
name=$(echo "$i"|awk -F ' ' '{print $3}')
host=$(echo "$i"|awk -F ' ' '{print $4}')
HOSTNAME=$host-$RANDOM #HOSTNAME加RANDOM随机数防止冲突
echo "$mac" - $ip - $name - $HOSTNAME #此处显示变量的值,其实可以省略
File2=$(echo "$File1"|awk -F "." '{print $1}')
#手动输入的例子
#read -p "Please Input HOSTNAME:" name
#read -p "Please Input MAC:" mac
#read -p "Please input IP:" ip
#写入配置文件
cat >>dhcpd-$File2.conf<<EOF
host $HOSTNAME {
#$name
hardware ethernet $mac;
fixed-address $ip;
}
EOF
done<$FILE
注:读取的文件需要参照如下模板创建
①、IP地址与MAC地址之间必须有一个空格
②、MAC地址格式必须如图所示用:号,不能有多余的内容
③、换行符格式必须是UNIX格式
④、最后一行留空,否则会少读取一行(会改进的大神请留言,先感谢了)
.
①、在版本1.0的基础上增加了名字和HOSTNAME,各数据之间用一个空格分隔,
②、MAC地址格式必须如图所示用:号,不能有多余的内容
③、换行符格式必须是UNIX格式
④、最后一行留空,否则会少读取一行(会改进的大神请留言,先感谢了)
【会灵活修改脚本的大神当我没说】