Since virsh domifaddr
doesn’t work to get the IP addresses of VMs on a bridged network, I wrote a get-vm-ip
script (which you can download from Github) which uses this to get the IP of a running VM:
HOSTNAME=[your vm name]
MAC=$(virsh domiflist $HOSTNAME | awk '{ print $5 }' | tail -2 | head -1)
arp -a | grep $MAC | awk '{ print $2 }' | sed 's/[()]//g'
The virsh
command gets the MAC address, the last line finds the IP address using arp
.
Hope you find this useful.
The magic is that virtual machines interfaces are listed than mac address is grepped. After grepping mac address we are looking our ARP table to find corresponding ip address and put it to the screen. This script will list all interfaces of VM if it has more than one.