Como mapear um endereço IP para o host local?


16

Quero mapear o endereço IP 192.168.1.222 para 127.0.0.1 para que, se eu usar 192.168.1.222 no navegador da web ou no comando ping, receba a resposta (e a do meu 127.0.0.1).

Isso é possível por meio de tabelas de roteamento ou preciso adicionar algum tipo de adaptador de rede virtual?

Eu tento lidar com esse problema em uma máquina com Windows 7 e não tenho outras opções além do Windows XP, talvez.

Eu estou preso ali.


Não sei se isso é possível, mas é fácil fazer isso com nomes de host. É apenas para um computador?
Canadian Luke

Ok, duas perguntas aqui: 1. Se você está tentando acessar o sistema local em um navegador da Web, por que não usar 127.0.0.1o tempo todo? 2. Se isso é para o sistema local, por que lidar com IPs pesados ​​em vez de usar o nome de host reservado localhost?
Iszi

@DiogoRocha Faça suas edições mais substanciais que estas. Um único caractere ou capitalização de um termo não é relevante o suficiente para uma edição que leva os tópicos para a primeira página. Este e este tópico se aplicam às edições sugeridas, mas o princípio é válido mesmo quando você tem privilégios de edição. Obrigado.
Daniel Beck

@Luke: Eu não pode trabalhar com nomes de host para que o arquivo hosts não é viável aqui
Sebastian

@ Iszi: Eu preciso que um software pense que existe outra máquina presente.
Sebastian

Respostas:


15

Você teria que atribuir o endereço IP 192.168.1.222 a uma de suas interfaces de rede. Apenas alterar a tabela de roteamento não terá o resultado desejado; o tráfego realmente chegaria ao host local, mas seu computador concluirá que a mensagem ainda não chegou ao seu destino. Na falta de outras opções para transmitir a mensagem, ela será descartada.

Atribuir 192.168.1.222 a uma de suas interfaces físicas seria a solução mais simples, mas se você não tiver uma interface sobressalente e não desejar que suas alterações afetem o restante da rede, poderá criar outra interface de loopback, semelhante à em 127.0.0.1.

O procedimento mudou um pouco desde o Windows XP . Abra o gerenciador de dispositivos através do painel de controle e, no menu Ação, clique em 'Adicionar hardware herdado'. Se esta opção estiver ausente, o assistente pode ser iniciado através do executável 'hdwwiz.exe'.

Gerenciador de Dispositivos

Quando solicitado, selecione o hardware manualmente em uma lista, em vez de instalá-lo automaticamente. Nos menus a seguir, selecione 'Adaptador de rede', 'Microsoft' como fabricante e procure o 'Microsoft Loopback Adapter'. Se o dispositivo foi instalado corretamente, um novo adaptador de rede aparecerá no gerenciador de dispositivos.

Abra o Centro de Rede e Compartilhamento através do painel de controle e clique em 'Alterar configurações do adaptador' na barra esquerda. A janela a seguir será exibida, incluindo nosso adaptador recém-instalado.

Conexões de rede

Abra suas propriedades. Na guia Rede, selecione o item IPv4 e clique no botão Propriedades. Digite o endereço IP que você deseja atribuir à interface de loopback. Como será a única interface em sua rede, inserimos '255.255.255.255' como a máscara de sub-rede.

Endereços IP

Voila.

C:\Users\Marcks>ping 192.168.1.122

Pinging 192.168.1.122 with 32 bytes of data:
Reply from 192.168.1.122: bytes=32 time<1ms TTL=128
Reply from 192.168.1.122: bytes=32 time<1ms TTL=128
Reply from 192.168.1.122: bytes=32 time<1ms TTL=128
Reply from 192.168.1.122: bytes=32 time<1ms TTL=128

Ping statistics for 192.168.1.122:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

1
No Windows 7, o dispositivo foi chamado "Microsoft KM-TEST Loopback Adapter". Caso contrário, esse comentário foi direto e funcionou perfeitamente para mim! Muito obrigado!
Nome verdadeiro Editado

No Gerenciador de dispositivos do Windows 10, essa opção não está mais disponível. Pode ser acessado executando hdwwiz.exe.
Samir Aguiar

8

Execute no prompt de comando admin:

C:\Windows\system32>netsh int ip add address "Loopback" 192.168.1.222

C:\Windows\system32>netsh int ip show addresses

接口 "Loopback Pseudo-Interface 1" 的配置
    DHCP 已启用:                          否
    IP 地址:                           192.168.1.222
    子网前缀:                        192.168.1.0/24 (掩码 255.255.255.0)
    IP 地址:                           127.0.0.1
    子网前缀:                        127.0.0.0/8 (掩码 255.0.0.0)
    InterfaceMetric:                      75

C:\Windows\system32>ping 192.168.1.222

正在 Ping 192.168.1.222 具有 32 字节的数据:
来自 192.168.1.222 的回复: 字节=32 时间<1ms TTL=128
来自 192.168.1.222 的回复: 字节=32 时间<1ms TTL=128

7

Isso deve funcionar no Windows 7 e XP, na janela de comando:

route ADD 192.168.1.222 MASK 255.255.255.255 127.0.0.1

Se você deseja que a nova rota seja persistente entre as reinicializações:

route -p ADD 192.168.1.222 MASK 255.255.255.255 127.0.0.1

Este método não funciona. Não recebo o ping em 192.168.1.222 para retornar uma resposta. O que fiz agora foi adicionar vários IPs à interface (IP Aliasing), mas mesmo isso não funciona, pois o serviço com o qual tento me comunicar parece ouvir apenas 1 IP.
Sebastian

2
Agora que penso nisso, tenho certeza de que isso não funcionará, a menos que 192.168.1.222seja um IP que realmente pertença à máquina local; nesse caso, seria redundante de qualquer maneira. Isso forçará o computador a enviar pacotes destinados 192.168.1.222ao loopback, mas no lado de recebimento eles serão descartados se esse não for o IP local.
Iszi

Isso funcionou perfeitamente para mim, se e somente se eu adicionar uma entrada correspondente no arquivo hosts. No entanto, observe que meu caso é invertido, pois estou mapeando o host local para um IP externo (nesse caso, o IP do meu host da VM).
Jim O'Brien

@ JimO'Brien Isso significa que você usou route ADD 127.0.0.1 MASK 255.255.255.255 192.168.1.222?
Shayan

Este comando não funciona para mim, eu recebo:The route addition failed: The parameter is incorrect.
Shayan
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.