É possível - pelo menos, no caso comum, em que a rede no estilo NAT está configurada para o convidado. Como o VMWare está fornecendo o NAT, ele deve nos dizer para que endereço ele está atualmente. Algo como vmrun list
deveria estar produzindo essa informação. Que isso não é uma falha ...
Mas, de qualquer forma, eis como se pode descobrir de qualquer maneira. Primeiro, execute ifconfig
no seu Mac (talvez ipconfig
faça o mesmo no Windows, mas ainda não testei). Isso listará todas as interfaces de rede na máquina - físicas e virtuais. Procure os vmnet-ones. No meu Mac, isso produz:
% ifconfig | grep -A2 ^vmnet
vmnet1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:50:56:c0:00:01
inet 192.168.82.1 netmask 0xffffff00 broadcast 192.168.82.255
vmnet8: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:50:56:c0:00:08
inet 192.168.123.1 netmask 0xffffff00 broadcast 192.168.123.255
Portanto, o IP do meu convidado está em uma dessas duas redes privadas de VM: 192.168.82.0/24 ou 192.168.123.0/24. No seu host, pode haver apenas um, com sorte, ou mais de dois - precisamos verificar todos eles. Aqui está um script tcsh muito simples, inserido diretamente na linha de comando, que fez isso por mim. Ele tenta executar ping em cada endereço em todas as redes privadas de classe C gerenciadas pelo vmnet e termina quando um ping é bem-sucedido. A -W 500
opção diz ao ping para aguardar apenas meio segundo por uma resposta (provavelmente poderia usar ainda menos), e -c 1
diz para enviar exatamente um pacote:
% set i=2
% while ( $i < 255 )
while? ping -W 500 -c 1 192.168.82.$i && break
while? ping -W 500 -c 1 192.168.123.$i && break
while? @ i++
while? end
O pequeno script acima foi executado por algum tempo, listando todas as tentativas malsucedidas de alcançar os endereços inexistentes:
PING 192.168.82.2 (192.168.82.2): 56 data bytes
--- 192.168.82.2 ping statistics ---
1 packets transmitted, 0 packets received, 100.0% packet loss
PING 192.168.123.2 (192.168.123.2): 56 data bytes
...
Até que finalmente conseguiu e terminou:
64 bytes from 192.168.123.130: icmp_seq=0 ttl=64 time=0.307 ms
--- 192.168.123.130 ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
Voilà, eu pude entrar no meu convidado:
% ssh 192.168.123.130
Password:
Agora, eu tinha apenas um convidado em execução - portanto, o primeiro endereço IP a responder a um ping foi o correto. Se você executar vários convidados de uma só vez, pode ser necessário usar o comando ping igual ou semelhante para criar uma lista de todos esses endereços IP privados válidos e, em seguida, experimentar todos eles até chegar ao convidado correto ...
(E, talvez, o .130 é uma boa opção para endereços baseados em NAT de qualquer maneira. Mas não posso ter certeza.)