使用APR的功能
#!/bin/bash
#看系统中有多少个接口,全部获取arp信息
arp -a -i enp2s0 -i br0> tmparp
for vm in `virsh --connect qemu:///system list --all |grep running |awk '{print $2}'`
do
MAC=`virsh dumpxml $vm |grep mac |grep -E -o "([0-9][0-9][:])+[0-9][0-9]"`
LINE=`cat tmparp|grep "$MAC"`
VIP=`echo $LINE |awk -F '(' '{print $2}' |awk -F ')' '{ print $1 }'`
echo "$vm: $VIP : $MAC"
done
使用nmap的功能
nmap -sP 192.168.10.0/24 >iplists
lines=`cat iplists |wc -l`
echo "the whole line is $lines"
WHOLEIPS=$(( ( $lines - 2) /3 ))
for vm in `virsh --connect qemu:///system list --all |grep running |awk '{print $2}'`
do
MAC=`virsh dumpxml $vm |grep mac |grep -E -o "([0-9][0-9][:])+[0-9][0-9]+"`
lines=$WHOLEIPS
FROM=3
while [ $lines -gt 0 ] ;
do
TO=$(( $FROM + 2 ))
cat iplists | sed -n "$FROM,${TO}p" >vm
grep -q "$MAC" vm
if [ $? -eq 0 ] ; then
VIP=`cat vm | grep -E -o '([0-9][0-9]+\.)+[0-9]+'`
echo "$vm: $VIP : $MAC"
break;
fi
let lines--
FROM=$(($TO+1))
done
done
rm -f vm