[libvirt] RFC: Implement virDomainGetIPAddress()

Michal Novotny minovotn at redhat.com
Thu Jul 14 15:14:57 UTC 2011


Hi guys,
some time ago I've been investigating the options to get the guest's IP
address information without having to connect to guest's VNC window or
console. It was for one project I've been working on and I found that
the solution lies in the procfs, precisely in the /proc/{PID}/net/arp...

The format is as follows:

$ cat /proc/{PID}/net/arp
IP address       HW type     Flags       HW address            Mask    
Device
192.168.122.36   0x1         0x2         52:54:00:35:76:e6     *       
virbr0

where the HW address matches the MAC address associated to the guest's
NIC. Implementing such an API shouldn't be a big problem however I know
that there's some option to run libvirt on Windows machines. It should
be just the client so it shouldn't really matter however I'd like to ask
you whether it's really not an issue.

The function should return a string of the guest's IP address as read
from the procfs or return a NULL value if there's no IP address
associated with the guest.

If the multiple NICs are being used by the guest then the function
should return either the IP address matching the MAC address passed to
the function or the first IP address if omitted.

The prototype should be:

char *virDomainGetIPAddress(virDomainPtr domain, char *devmac);

For this the internal information about PID of the process spawned
should be used (this is already being tracked and stored by libvirt
IMHO) to access the /proc/{PID}/net/arp file.

This API function would be very useful since it would give libvirt users
option to get the information of the guest's IP address without having
to connect to guest's VNC window or console.

For virsh this could be implemented directly into the dominfo subcommand.

What do you think about implementing this ?

Thanks,
Michal

-- 
Michal Novotny <minovotn at redhat.com>, RHCE, Red Hat
Virtualization | libvirt-php bindings | php-virt-control.org




More information about the libvir-list mailing list