Mapeando um endereço IP para outro no arquivo 'hosts'

7

O arquivo de hosts ( %SystemRoot%\system32\drivers\etc\hosts ) permite que você aponte o google.com para, por exemplo, 127.0.0.1 na sua máquina local, mas e se eu quisesse fazer, por exemplo, 192.168.1.5 apontar para 127.0.0.1 na minha máquina local? Existe uma maneira de fazer isso? Isso pode ser feito no arquivo hosts no Windows 7?

    
por neubert 28.12.2014 / 22:41

3 respostas

10

Você não pode usar o arquivo hosts para isso.
Isso mapeia apenas nomes em endereços IP.

Eu não tentei fazer isso sozinho, mas imagino que você possa abusar do comando route para isso:

route add 192.168.1.5 127.0.0.1

Isso instrui a pilha de IP a rotear todo o tráfego para 192.168.1.5 no gateway em 127.0.0.1. Claro que não há gateway lá, então isso só serve para o tráfego blackhole. Você não pode fazer nada útil com o tráfego.

    
por 28.12.2014 / 23:17
1

Como todos os outros observaram, você não pode fazer isso através do arquivo de hosts. Você precisa de alguma forma de reescrita de pacotes: o mais comum é Network Address Translation . O NAT é normalmente usado para permitir que vários dispositivos usem o mesmo endereço IP "público" (e essa é a única forma que muitos roteadores domésticos baratos podem fazer), mas um mecanismo NAT mais abrangente como o encontrado no Cisco IOS ou Linux IPTables pode fazer re-escrita generalizada.

Observe que o NAT não é uma solução para todos: alguns protocolos, como o FTP, incluem endereços IP dentro dos pacotes de dados, bem como no cabeçalho IP, e se o mecanismo NAT não tratar esses protocolos especialmente, simplesmente -escrever o cabeçalho fará com que as coisas se quebrem.

    
por 29.12.2014 / 00:44
1

Você não pode mapear um endereço IP para outro em um arquivo hosts.

Você provavelmente pode reescrever endereços IP em certos softwares de firewall em algumas plataformas (talvez no Linux iptables ou equivalente).

    
por 28.12.2014 / 22:50