Si enlaza un socket en Python a localhost, 8200 se puede acceder a través de http: // localhost: 8200 / . pero no http: // xxxx: 8200 /
Si vincula un socket en Python a xxxx, 8200, machinename, 8200, se puede acceder a través de http: // xxxx: 8200 / y http: // machinename: 8200 / , pero no http: // localhost: 8200 /
Pensé que localhost significaba 'esta máquina', y que usarla 'volvería en bucle' a la dirección IP de la máquina, pero parece ser diferentes ips.
¿127.0.0.1 es siempre una dirección IP diferente a la dirección IP de la máquina?
actualizar:
Entiendo que los números reales son diferentes, pero ¿qué hace el loopback?
Por ejemplo, wikepedia dice que
'apuntar un navegador web a las URL http://127.0.0.1/ o http: // localhost / accederá al sitio web de esa computadora'
pero ese sitio web también será accesible en xxxx, y probablemente esté configurado con un solo socket en xxxx Entonces, ¿cómo funcionan ambas referencias entonces?
conclusión:
Creo que finalmente entiendo que 127.0.0.1 y xxxx funcionan así
--127.0.0.1 ==\
>- Computer
--x.x.x.x ==/
y no
--127.0.0.1 ==\
--------------- x.x.x.x >- Computer
o
--x.x.x.x ==\
--------------- 127.0.0.1 >- Computer
gracias por toda la ayuda
Respuestas:
Para responder tu pregunta.
127.0.0.1 no es solo una dirección IP diferente a la dirección IP de la máquina, también es una interfaz diferente. 127.0.0.1 no debe verse en la red local. Es una dirección IP interna especial para el adaptador de bucle invertido.
xxxx será su tarjeta de ethernet.
por cierto, 'localhost' es simplemente una entrada en su archivo de hosts que apunta a 127.0.0.1
Si vincula un socket a 127.0.0.1:8200, solo los clientes que se ejecutan localmente podrán acceder a él y solo con http://127.0.0.1:8200 o http: // localhost: 8200 (o una entrada de archivo dns o hosts que apunta a 127.0.0.1).
Un socket vinculado a xxxx: 8200 solo estará disponible a través de http: // xxxx: 8200 o una entrada de archivo dns o hosts que apunte a eso.
Vincular un socket a 127.0.0.1 tampoco lo hace automáticamente disponible en la interfaz ethernet.
Por eso no puedes conectarte a xxxx: 8200
Puede vincular el puerto 8200 a todas las interfaces disponibles (0.0.0.0), entonces debería funcionar.
fuente
Ligeramente inexacto. Se puede hacerlo. Igualmente, es posible que no muestre ningún sitio web e incluso es posible mostrar un sitio web interno diferente del que obtiene cuando usa su dirección xxxx.
127.0.0.1 apunta a su propia máquina, pero eso no significa que se comportará de la misma manera una vez que llegue a su máquina
Si desea una analogía no técnica, puede considerarlas diferentes puertas a su casa.
Ambos apuntan a la misma casa pero no son lo mismo. Es posible que cada puerta lo lleve a la misma habitación o podrían llevarlo a una habitación diferente. También es posible bloquear una puerta y no la otra.
Cuando configura un sitio web, especifica a qué direcciones enlazar y, a menudo, la respuesta es todas las direcciones. (Eso es equivalente a que todas las puertas te lleven a una habitación)
También puede especificar el sitio web para que se enlace solo a una dirección. (Eso es equivalente a bloquear todas las puertas excepto una).
Si tiene dos (o más) sitios web, puede vincularlos a direcciones separadas. (Eso es equivalente a que cada puerta entre en habitaciones separadas).
Un ejemplo de cómo funcionan ambas referencias, mi computadora con Windows 7 tiene IIS instalado, cuando entro al Administrador de IIS y hago clic derecho en Sitio web predeterminado, me da la opción de menú 'Editar enlaces'. Al seleccionar eso, aparecerá una lista de enlaces. Solo tengo uno, pero para la dirección IP tiene *, lo que significa que IIS escucha en todas mis direcciones IP.
fuente
127.0.0.1:5000
con éxito a un sitio web y me uní192.168.1.104:5000
a otro sitio. La clave es queaddress:port
significa una habitación diferente (servicio) en la casa (la computadora).Cada dirección IP en el sistema es independiente y se puede vincular por sockets por separado, con la excepción de la dirección especial 0.0.0.0 que indica al sistema operativo que vincule el socket a todas las interfaces.
fuente