Как сопоставить IP-адрес с localhost?

16

Я хочу сопоставить IP-адрес 192.168.1.222 с 127.0.0.1, чтобы, если я использую 192.168.1.222 в веб-браузере или команде ping, я получил ответ (и тот из моего 127.0.0.1).

Это возможно через таблицы маршрутизации или мне нужно добавить какой-нибудь виртуальный сетевой адаптер?

Я пытаюсь решить эту проблему на компьютере с Windows 7, и у меня нет других вариантов, кроме Windows XP.

Я застрял прямо там.

Себастьян
источник
Не знаю, возможно ли это, но это легко сделать с именами хостов. Это только для одного компьютера?
канадец Люк
Итак, два вопроса здесь: 1. Если вы пытаетесь добраться до локальной системы через веб-браузер, почему бы просто не использовать 127.0.0.1все время? 2. Если это для локальной системы, зачем вообще иметь дело с громоздкими IP-адресами вместо использования зарезервированного имени хоста localhost?
Изи
@DiogoRocha Пожалуйста, сделайте ваши правки более существенными, чем эти. Отдельный символ или использование заглавных букв в термине недостаточно релевантны для редактирования, которое выдвигает темы на главную страницу. Эта и эта тема применимы к предлагаемым изменениям, но принцип сохраняется даже при наличии прав на редактирование. Благодарю.
Даниэль Бек
@Luke: Я не могу работать с именами хостов, поэтому файл hosts здесь нежизнеспособен
Себастьян
@Iszi: Мне нужно, чтобы программа думала, что есть еще одна машина.
Себастьян

Ответы:

15

Вы должны будете назначить IP-адрес 192.168.1.222 одному из ваших сетевых интерфейсов. Простое изменение таблицы маршрутизации не даст желаемого результата; трафик действительно прибудет на локальный хост, но ваш компьютер затем решит, что сообщение еще не достигло своего пункта назначения. При отсутствии каких-либо дополнительных возможностей передачи сообщения оно будет отброшено.

Назначение 192.168.1.222 одному из ваших физических интерфейсов было бы самым простым решением, но если у вас нет запасного интерфейса и вы не хотите, чтобы ваши изменения влияли на остальную часть сети, вы можете создать другой интерфейс обратной связи, аналогичный на 127.0.0.1.

Процедура несколько изменилась со времен Windows XP . Откройте диспетчер устройств через панель управления и в меню «Действие» нажмите «Добавить устаревшее оборудование». Если эта опция отсутствует, мастер может быть запущен через исполняемый файл hdwwiz.exe.

Диспетчер устройств

При появлении запроса выберите оборудование из списка вручную, а не устанавливайте его автоматически. В следующих меню выберите «Сетевой адаптер», «Microsoft» в качестве производителя и найдите «Microsoft Loopback Adapter». Если устройство установлено правильно, в диспетчере устройств появится новый сетевой адаптер.

Откройте Центр управления сетями и общим доступом через панель управления и нажмите «Изменить настройки адаптера» на левой панели. Появится следующее окно, включая наш недавно установленный адаптер.

Сетевые соединения

Откройте его свойства. На вкладке «Сеть» выберите элемент IPv4 и нажмите кнопку «Свойства». Введите IP-адрес, который вы хотите назначить интерфейсу обратной связи. Поскольку это будет единственный интерфейс в сети, мы вводим «255.255.255.255» в качестве маски подсети.

IP-адреса

Вуаля.

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
В Windows 7 устройство называлось «Microsoft KM-TEST Loopback Adapter». В противном случае, этот комментарий был точным, и он работал отлично для меня! Большое спасибо!
Настоящее имя отредактировано
В диспетчере устройств Windows 10 эта опция больше не доступна. Доступ к нему можно получить, запустив hdwwiz.exe.
Самир Агиар
8

Запустите под командной строкой администратора:

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
lk_vc
источник
7

Это должно работать как в Windows 7, так и в XP из окна командной строки:

route ADD 192.168.1.222 MASK 255.255.255.255 127.0.0.1

Если вы хотите, чтобы новый маршрут был постоянным между перезагрузками:

route -p ADD 192.168.1.222 MASK 255.255.255.255 127.0.0.1
Райхан
источник
Этот метод не работает. Я не получаю пинг на 192.168.1.222 для возврата ответа. Теперь я добавил несколько IP-адресов к интерфейсу (IP Aliasing), но даже это не работает, поскольку служба, с которой я пытаюсь установить связь, похоже, прослушивает только 1 IP.
Себастьян
2
Теперь, когда я думаю об этом, я почти уверен, что это не сработает, если только 192.168.1.222IP-адрес на самом деле не принадлежит локальной машине, и в этом случае он все равно будет избыточным. Это заставит компьютер отправлять пакеты, предназначенные для 192.168.1.222обратной связи, но на принимающей стороне они будут отброшены, если это не локальный IP-адрес.
Изи
Это отлично сработало для меня, если и только если я добавлю соответствующую запись в файл hosts. Тем не менее, обратите внимание, что мой случай перевернут, так как я сопоставляю localhost с внешним IP-адресом (в данном случае IP-адрес моего хоста VM).
Джим О'Брайен,
@ JimO'Brien Значит ли это, что вы использовали route ADD 127.0.0.1 MASK 255.255.255.255 192.168.1.222вместо этого?
Шаян
Эта команда не работает для меня, я получаю:The route addition failed: The parameter is incorrect.
Шаян