Como recuperar o IP do host do convidado nat virtualbox?

Como recuperar o IP do host do convidado nat virtualbox?

Eu tenho um host do Windows 7 lidando com um convidado debian do VirtualBox com nat. Este convidado está executando alguns serviços da web acessíveis externamente por meio de redirecionamento de porta.

Preciso fornecer acesso externo a esses serviços por meio de URLs, mas não posso contar com uma resolução de DNS adequada, então tenho que propagar o IP do host para o ambiente convidado. Como eu poderia fazer isso com o mínimo impacto no host?

Alguns esclarecimentos: "externo", "acesso externo" refere-se a navegadores hospedados no mesmo nível do host, ou seja. eles não podem confiar apenas no endereço do host.

Um desenho vale mais que mil palavras:

+--------------+  External                         
| Windows Host |  network   +---------------------+
| +----+       |            |      Web client     |
| |    |      NAT           |  +----------------+ |
| |    ------------------------> Page generated | |
| |    |       |            |  |by VM with URLs | |
| | VM |       |            |  |to host         | |
| |    |       |            |  +--------|-------+ |
| |    |      FWD           |           |         |
| |    <--------------------------------+         |
| |    |       |            +---------------------+
| +----+       |                                   
+--------------+

Responder1

Uma maneira de conseguir isso é o truque por trás de sites comowhatsmyip.com. tudo que você precisa é de um servidor web em sua rede que envie o endereço IP de onde recebe uma solicitação de volta ao cliente.

Lembre-se, como você está usando NAT, o servidor vê o endereço do roteador NAT (neste caso, o host da VM) como endereço de origem.

Para fazer isso, você pode criar um script php (ou seja whatsmyip.php,) na raiz da web do seu servidor web, como

//whatsmyip.php
<?php 
//Gets the IP address
$ip = getenv("REMOTE_ADDR") ; 
Echo "$ip; 
?> 

e acesse-o do seu convidado comohttp://webserver/whatsmyip.php

(fonte:Thoughtco.com )

Agora você só precisa avaliar essa resposta no seu serviço

Responder2

Levando em conta a resposta de Guntbert, isso envolve:

  • Use um servidor Web de terceiros na rede "externa" para hospedar um respondedor de endereço remoto, conforme descrito na resposta fornecida.
  • Durante a fase de inicialização da VM (e/ou periodicamente de acordo com o contexto da rede), navegue nela para buscar o endereço externo do host windows
  • Use o endereço recuperado para falsificar URLs durante a construção de páginas.

informação relacionada