Различие между localhost и IP-адресом

Если связывают сокет в Python к localhost, 8200 это доступно с помощью http://localhost:8200/. но не http://x.x.x.x:8200/

Если связывают сокет в Python к x.x.x.x, 8200, machinename, 8200 это доступно с помощью http://x.x.x.x:8200/ и http://machinename:8200/, но не http://localhost:8200/

Я думал, что localhost означал 'эту машину', и что использование его 'циклично выполнится назад' к IP-адресу машины, но это, кажется, другой дюйм/с.

127.0.0.1 всегда другой IP-адрес к IP-адресу машин?

обновление:

Я понимаю, что фактические числа отличаются, но что делает обратная петля?

Например, wikepedia говорит это
'при указании на веб-браузер на URL http://127.0.0.1/ или http://localhost/ получат доступ к собственному веб-сайту того компьютера'

но тот веб-сайт также будет доступен на x.x.x.x и по-видимому будет создан с единственным сокетом на x.x.x.x. Таким образом, как обе ссылки работают затем?

заключение:

Я думаю, что наконец понимаю, что 127.0.0.1 и x.x.x.x работают как это

--127.0.0.1 ==\
               >- Computer
--x.x.x.x   ==/

и нет

--127.0.0.1 ==\
--------------- x.x.x.x >- Computer

или

--x.x.x.x ==\
--------------- 127.0.0.1 >- Computer

Спасибо все для справки

16
задан 08.10.2010, 10:54

3 ответа

Отвечать на Ваш вопрос.

127.0.0.1 не просто другой IP-адрес к IP-адресу машины, это - другой интерфейс также. 127.0.0.1 не должен быть замечен в локальной сети. Это - специальный внутренний IP-адрес для петлевого адаптера.

x.x.x.x будет Вашей платой Ethernet.

по тому, как 'localhost' является просто записью в Вашем файле hosts, который указывает на 127.0.0.1

Если Вы свяжете сокет с 127.0.0.1:8200 затем, то только клиенты, работающие локально, смогут получить доступ к нему и только с http://127.0.0.1:8200 или http://localhost:8200 (или DNS или запись файла hosts, которая указывает на 127.0.0.1).

Сокет, связанный с x.x.x.x:8200, только будет доступен через http://x.x.x.x:8200 или DNS или запись файла hosts, которая указывает на это.

Привязка сокета к 127.0.0.1 автоматически не делает этого доступным на интерфейсе Ethernet также.

Вот почему Вы не можете соединиться с x.x.x.x:8200

Можно связать порт 8200 со всеми доступными интерфейсами (0.0.0.0) затем, он должен работать.

17
ответ дан 07.12.2019, 10:53

Например, wikepedia говорит, что, 'указывая на веб-браузер на URL http://127.0.0.1/ или http://localhost/ получат доступ к собственному веб-сайту того компьютера'

Немного неточный. Это может сделать так. Одинаково хорошо это не может поднять веб-сайт, и даже возможно отобразить другой внутренний веб-сайт от того, что Вы получаете при использовании адреса x.x.x.x.

127.0.0.1 точки к Вашей собственной машине, но это не означает, что она будет вести себя тот же путь, после того как она достигает Вашей машины

Если Вы хотите нетехническую аналогию, Ваш может считать их различными дверями в Ваш дом.

Там оба указывают на тот же дом, но они не то же самое. Для каждой двери возможно взять Вас в ту же комнату, или они могли взять Вас в другую комнату. Также возможно заблокировать одну дверь а не другой.

При конфигурировании веб-сайта Вы указываете, какие адреса связать с и довольно часто ответ является всеми адресами. (Который эквивалентен, чтобы иметь все двери, берущие Вас в одну комнату),

Можно также указать веб-сайт для привязки с одним адресом только. (Который эквивалентен блокировке всех дверей кроме одной.)

Если Вы имеете два (или больше) веб-сайты, можно обязать их разделять адреса. (Который эквивалентен наличию каждой двери, входящей в отдельные комнаты).

Примеру того, как обе ссылки работают, мой компьютер Windows 7, установили IIS, когда я вхожу в менеджера по IIS и щелкаю правой кнопкой по Default Web Site, он дает мне пункт меню 'Edit Bindings'. Выбор, которые поднимают список привязки. У меня есть только один, но для IP-адреса это имеет *, что означает, что IIS слушает на всех моих IP-адресах.

3
ответ дан 07.12.2019, 10:53

Каждый IP-адрес в системе независим и может быть связан с сокетами отдельно, за исключением специального адреса 0.0.0.0, который указывает к ОС для привязки сокета со всеми интерфейсами.

1
ответ дан 07.12.2019, 10:53

Теги

Похожие вопросы