Como você não especificou nenhum requisito adicional, aqui está uma solução em C # usando o VMwareTasks , um wrapper da VIX API. VIX é o que você precisa usar. Acredito que o vSphere Client usa o mesmo método para obter os endereços IP de um convidado, embora eu não saiba se essa implementação lida com vários endereços corretamente.
// declare a virtual host
using (var virtualHost = new VMWareVirtualHost())
{
// connect to a local VMWare Workstation virtual host
virtualHost.ConnectToVMWareWorkstation();
// open an existing virtual machine
using (var virtualMachine = virtualHost.Open(@"C:\Virtual Machines\xp\xp.vmx"))
{
// power on this virtual machine
virtualMachine.PowerOn();
// wait for VMWare Tools
virtualMachine.WaitForToolsInGuest();
// login to the virtual machine
var ipAddress = virtualMachine.GuestVariables["ip"]
}
}
Por favor, não: eu não testei isso, então pode haver algumas imprecisões.