Unterschied zwischen localhost und der IP-Adresse

Unterschied zwischen localhost und der IP-Adresse

Wenn Sie einen Socket in Python an localhost,8200 binden, ist dieser erreichbar überhttp://localhost:8200/. aber nichthttp://xxxx:8200/

Wenn Sie einen Socket in Python an xxxx,8200, machinename,8200 binden, ist dieser erreichbar überhttp://xxxx:8200/Undhttp://Maschinenname:8200/, aber nichthttp://localhost:8200/

Ich dachte, mit „localhost“ wäre „diese Maschine“ gemeint und dass bei Verwendung eine „Schleife zurück“ zur IP-Adresse der Maschine erfolgt, aber es scheinen unterschiedliche IPs zu sein.

Ist 127.0.0.1 immer eine andere IP-Adresse als die IP-Adresse des Computers?

aktualisieren:

Ich verstehe, dass die tatsächlichen Zahlen anders sind, aber was macht der Loopback?

Zum BeispielWikipediasagt, dass
'einen Webbrowser auf die URLs verweisenhttp://127.0.0.1/oderhttp://localhost/greift auf die Website dieses Computers zu‘

Aber diese Website wird auch auf xxxx zugänglich sein und vermutlich mit einem einzigen Socket auf xxxx eingerichtet sein. Wie funktionieren also beide Referenzen?

Abschluss:

Ich glaube, ich verstehe endlich, dass 127.0.0.1 und xxxx so funktionieren

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

und nicht

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

oder

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

Danke an alle für die Hilfe

Antwort1

Zur Beantwortung Ihrer Frage.

127.0.0.1 ist nicht nur eine andere IP-Adresse als die IP-Adresse des Computers, sondern auch eine andere Schnittstelle. 127.0.0.1 sollte im lokalen Netzwerk nicht angezeigt werden. Es ist eine spezielle interne IP-Adresse für den Loopback-Adapter.

xxxx ist Ihre Ethernet-Karte.

übrigens ist 'localhost' einfach ein Eintrag in Ihrer Hosts-Datei, der auf 127.0.0.1 verweist

Wenn Sie einen Socket an 127.0.0.1:8200 binden, können nur lokal ausgeführte Clients darauf zugreifen und nur mithttp://127.0.0.1:8200oderhttp://localhost:8200(oder ein DNS- oder Hosts-Dateieintrag, der auf 127.0.0.1 verweist).

Ein an xxxx:8200 gebundener Socket ist nur verfügbar überhttp://xxxx:8200oder ein DNS- oder Hosts-Dateieintrag, der darauf verweist.

Das Binden eines Sockets an 127.0.0.1 macht ihn nicht automatisch auch auf der Ethernet-Schnittstelle verfügbar.

Deshalb können Sie keine Verbindung zu xxxx:8200 herstellen

Sie können Port 8200 an alle verfügbaren Schnittstellen (0.0.0.0) binden, dann sollte es funktionieren.

Weitere Funktionen des Loopback-Adapters:

Die Loopback-Schnittstelle ist eine virtuelle Schnittstelle. Sie wird häufig verwendet, um Programmen die Kommunikation untereinander auf demselben Computer zu ermöglichen. Sie ist keine Möglichkeit, auf die IP-Adresse des Computers zu verweisen. 127.0.0.1 IST die IP-Adresse des virtuellen Loopback-Adapters.

Das andere am Loopback-Adapter ist, dass er, weil er virtuell ist, tatsächlich keine Pakete an die Netzwerkkarte weiterleitet.

Antwort2

Beispielsweise sagt Wikipedia, dass 'das Verweisen eines Webbrowsers auf die URLshttp://127.0.0.1/oderhttp://localhost/greift auf die Website dieses Computers zu‘

Etwas ungenau. EsMaitun Sie dies. Es kann auch sein, dass gar keine Website angezeigt wird, und es ist sogar möglich, dass eine andere interne Website angezeigt wird als die, die Sie erhalten, wenn Sie Ihre xxxx-Adresse verwenden.

127.0.0.1 verweist auf Ihren eigenen Rechner, aber das bedeutet nicht, dass es sich genauso verhält, sobald es Ihren Rechner erreicht

Wenn Sie eine nicht-technische Analogie wünschen, können Sie sie als verschiedene Türen zu Ihrem Haus betrachten.

Beide weisen auf dasselbe Haus, aber es handelt sich nicht um dasselbe. Es ist möglich, dass beide Türen in denselben Raum führen oder in einen anderen. Es ist auch möglich, dass eine Tür verschlossen ist, die andere aber nicht.

Wenn Sie eine Website konfigurieren, geben Sie an, an welche Adressen eine Verbindung hergestellt werden soll. Häufig lautet die Antwort: „Alle Adressen“. (Das ist so, als ob alle Türen in einen Raum führen würden.)

Sie können die Website auch so festlegen, dass sie nur an eine Adresse gebunden wird. (Das entspricht dem Abschließen aller Türen außer einer.)

Wenn Sie zwei (oder mehr) Websites haben, können Sie sie an verschiedene Adressen binden. (Das ist so, als ob jede Tür in einen anderen Raum führt.)

Ein Beispiel dafür, wie beide Referenzen funktionieren: Auf meinem Windows 7-Computer ist IIS installiert. Wenn ich in den IIS-Manager gehe und mit der rechten Maustaste auf „Standardwebsite“ klicke, wird mir die Menüoption „Bindungen bearbeiten“ angezeigt. Wenn ich diese auswähle, wird eine Liste mit Bindungen angezeigt. Ich habe nur eine, aber für die IP-Adresse steht ein *, was bedeutet, dass IIS alle meine IP-Adressen abhört.

Antwort3

Jede IP-Adresse im System ist unabhängig und kann separat durch Sockets gebunden werden, mit Ausnahme der speziellen Adresse 0.0.0.0, die dem Betriebssystem anzeigt, dass der Socket an alle Schnittstellen gebunden werden soll.

verwandte Informationen