Wenn Sie einen Socket in Python an localhost binden, können Sie auf 8200 über http: // localhost: 8200 / zugreifen . aber nicht http: // xxxx: 8200 /
Wenn Sie einen Socket in Python an xxxx, 8200, machinename, 8200 binden, können Sie auf diesen über http: // xxxx: 8200 / und http: // machinename: 8200 / zugreifen , jedoch nicht über http: // localhost: 8200 /.
Ich dachte, localhost meinte "diese Maschine", und dass die Verwendung dieser "Schleife" zur IP-Adresse der Maschine zurückführen würde, aber es scheint sich um ein anderes IPS zu handeln.
Ist 127.0.0.1 immer eine andere IP-Adresse als die IP-Adresse des Computers?
aktualisieren:
Ich verstehe, dass die tatsächlichen Zahlen unterschiedlich sind, aber was macht der Loopback?
Zum Beispiel sagt Wikepedia , dass 'ein Verweisen eines Webbrowsers auf die URLs http://127.0.0.1/ oder http: // localhost / auf die Website dieses Computers zugreift '.
Aber diese Website wird auch unter xxxx zugänglich sein und vermutlich mit einem einzigen Socket unter xxxx eingerichtet. Wie funktionieren dann beide Referenzen?
Fazit:
Ich denke 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
Vielen Dank für die Hilfe
Antworten:
Zur Beantwortung Ihrer Frage.
127.0.0.1 ist nicht nur eine andere IP-Adresse als die IP-Adresse der Maschine, 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 zeigt
Wenn Sie eine Steckdose an 127.0.0.1:8200 binden dann nur ausgeführt Kunden vor Ort in der Lage sein , darauf zuzugreifen und nur mit http://127.0.0.1:8200 oder http: // localhost: 8200 (oder einem DNS- bzw. Host - Dateieintrag das zeigt auf 127.0.0.1).
Ein an xxxx: 8200 gebundener Socket ist nur über http: // xxxx: 8200 oder einen DNS- oder Hosts-Dateieintrag verfügbar , 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.
quelle
Etwas ungenau. Es kann so sein. Genauso gut kann es sein, dass keine Website aufgerufen wird, und es ist sogar möglich, eine andere interne Website als die anzuzeigen, die Sie erhalten, wenn Sie Ihre xxxx-Adresse verwenden.
127.0.0.1 verweist auf Ihren eigenen Computer. Dies bedeutet jedoch nicht, dass er sich bei Erreichen Ihres Computers genauso verhält
Wenn Sie eine nicht-technische Analogie wünschen, können Sie sie als verschiedene Türen in Ihr Haus betrachten.
Beide zeigen auf dasselbe Haus, aber sie sind nicht dasselbe. Es ist möglich, dass Sie von jeder Tür in den gleichen Raum oder in einen anderen Raum geführt werden. Es ist auch möglich, eine Tür und nicht die andere zu verriegeln.
Wenn Sie eine Website konfigurieren, geben Sie an, an welche Adressen gebunden werden soll, und die Antwort sind häufig alle Adressen. (Das ist gleichbedeutend damit, dass alle Türen Sie in einen Raum führen.)
Sie können auch die Website angeben, die nur an eine Adresse gebunden werden soll. (Das ist gleichbedeutend mit dem Verriegeln aller Türen mit einer Ausnahme.)
Wenn Sie zwei (oder mehr) Websites haben, können Sie diese an separate Adressen binden. (Das ist gleichbedeutend damit, dass jede Tür in einen separaten Raum führt).
Ein Beispiel für die Funktionsweise beider Verweise: Auf meinem Windows 7-Computer ist IIS installiert. Wenn ich in den IIS-Manager gehe und mit der rechten Maustaste auf die Standardwebsite klicke, wird die Menüoption "Bindungen bearbeiten" angezeigt. Durch Auswahl dieser Option wird eine Liste der Bindungen angezeigt. Ich habe nur eine, aber für die IP-Adresse gibt es *, was bedeutet, dass IIS alle meine IP-Adressen abhört.
quelle
Jede IP-Adresse im System ist unabhängig und kann separat an Sockets gebunden werden, mit Ausnahme der speziellen Adresse 0.0.0.0, die dem Betriebssystem angibt, dass der Socket an alle Schnittstellen gebunden werden soll.
quelle