Por que meu IP foi resolvido para 127.0.0.1 em vez do IP que tenho na rede?

1

Eu tenho um problema em entender como a resolução de IP funciona nos sistemas Linux. Para demonstrar meu problema, mostrarei um exemplo no Windows e depois no Linux.

Windows: O arquivo hosts do Windows está vazio. Apenas contém comentários.

Executando o seguinte comando em um shell Python:

socket.gethostbyname(socket.gethostname())

Eu recebo 192.168.10.105 , que é o meu IP atual na rede em que estou. Como eu esperava que fosse.

Linux : No Linux, meu /etc/hosts é o seguinte:

127.0.0.1       localhost.localdomain           localhost

O mesmo comando do Python me daria erros de que o recurso está temporariamente indisponível. Eu estou supondo que isso tem a ver com a ausência do meu Hostname atual de /etc/hosts . Se eu adicioná-lo manualmente

127.0.0.1       localhost.localdomain           localhost    MyHostName

o comando python retorna 127.0.0.1 . Que ainda não é o que eu esperava que fosse. No entanto, posso adicionar o IP e meu nome de host ao arquivo

127.0.0.1       localhost.localdomain           localhost
192.168.10.115  MyHostName 

mas este não é certamente o caminho certo a seguir. Se o DHCP for usado, esse IP mudará.

Como posso obter o mesmo resultado no Linux e no Windows? Onde está minha configuração (ou meu pensamento?) Errada?

    
por ap0 27.11.2015 / 14:06

1 resposta

0

Você pode editar o arquivo que contém as instruções para executar quando atribuído o IP à sua placa de rede (/etc/udhcpc/default.script).

Uma mudança que você pode fazer é a seguinte: na seção renew | bound add, sob a instrução ifconfig:

echo "127.0.0.1 localhost.localdomain localhost"> /etc/hosts
echo "$i myHostName" > /etc/hosts
    
por 27.11.2015 / 14:37

Tags