On Wed, Mar 30, 2011 at 01:43:37PM +0200, Philipp Hahn wrote:
Hello,
Am Mittwoch 30 März 2011 12:10:18 schrieb 徐滕:
> I'm new to libvirt, and have some questions about How to get the IP address
> of a Domain?
A domain does not have an IP address. A domain is equivalent to a PC
in hardware, which might have none, 1 2 or more network cards, each
one with it's own MAC address. This is the only propertpy of the
hardware and can be configured via the domain XML description. What
IP address your hosts uses is in complete control of your guest
operating system: It might configure no IP addresses at all, use a
mix of IPv4 and ipv4 addresses, use static assignment, or use
external services like DHCP, but is completely independent from the
hardware. So from libvirts point of view, your domain does not have
an IP address.
All of the above is absolutely true. Nevertheless you can probably
get the IP address that a guest has chosen by reading out config files
or (for the Windows) the Registry.
Example with a Linux guest:
# virt-cat RHEL60x64 /var/log/messages | grep 'dhclient.*bound to'
Mar 30 19:56:22 rhel60x64 dhclient: bound to 192.168.122.220 -- renewal in 1527 seconds.
Mar 30 20:21:49 rhel60x64 dhclient: bound to 192.168.122.220 -- renewal in 1375 seconds.
Mar 30 20:44:44 rhel60x64 dhclient: bound to 192.168.122.220 -- renewal in 1287 seconds.
Mar 30 21:06:11 rhel60x64 dhclient: bound to 192.168.122.220 -- renewal in 1461 seconds.
For Windows:
# virt-win-reg Win7x32 \
'HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters' | \
grep DhcpIPAddress
"DhcpIPAddress"=hex(1):31,00,39,00,32,00,2e,00,31,00,36,00,38,00,2e,00,31,00,32,00,32,00,2e,00,31,00,37,00,38,00,00,00
Windows notes:
(1) The output is hex encoded UTF16-LE. Converting it to a printable
string is left as an interesting exercise for the reader, but it is a
dotted-quad IP address (192.168.122.178).
(2) "ControlSet001" isn't exactly right there .. see the virt-win-reg
man page for the full details.
We could probably make a simple libguestfs-based tool that automated
this for all the different guest types out there.
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine. Supports Linux and Windows.
http://et.redhat.com/~rjones/virt-df/