Отображение одного IP-адреса на другой в файле 'hosts'
Файл hosts (%SystemRoot%\system32\drivers\etc\hosts
) позволяет google.com указывать, например, на 127.0.0.1 на вашем локальном компьютере, но что, если я хочу указать, например, 192.168.1.5 на 127.0.0.1 на моем локальном компьютере? Есть способ сделать это? Это можно сделать в файле hosts на Windows 7?
3 ответа
Вы не можете использовать файл hosts для этого.
Это сопоставляет только имена на IP-адресах.
Я не пробовал это сам, но я думаю, что вы можете злоупотребить командой маршрута для этого:
route add 192.168.1.5 127.0.0.1
Это указывает стеку IP направлять весь трафик для 192.168.1.5 к шлюзу 127.0.0.1. Конечно, там нет ворот, так что это служит только для движения черной дыры. Вы не можете сделать ничего полезного с трафиком.
Как все остальные заметили, вы не можете сделать это через файл hosts. Вам нужна некоторая форма переписывания пакетов: наиболее распространенной является трансляция сетевых адресов. NAT обычно используется, чтобы разрешить нескольким устройствам использовать один и тот же "общедоступный" IP-адрес (и это единственная форма, которую могут использовать многие дешевые домашние маршрутизаторы), но более полный механизм NAT, такой как в Cisco IOS или Linux IPTables, может сделать обобщенное переписывание.
Обратите внимание, что NAT не является универсальным решением для этого: некоторые протоколы, такие как FTP, включают IP-адреса в пакеты данных, а также в заголовок IP, и если механизм NAT не обрабатывает такие протоколы специально, просто переписать заголовок заставит вещи сломаться.
Вы не можете сопоставить IP-адрес с другим в файле hosts.
Вероятно, вы можете переписать IP-адреса в определенных программах брандмауэра на некоторых платформах (возможно, в Linux iptables или эквивалентном).