Saltar al contenido

Python 3: ¿http.server admite ipv6?

Posterior a indagar en diversos repositorios y páginas de internet finalmente nos encontramos con la respuesta que te mostramos pronto.

Solución:

A partir de Python 3.8, python -m http.server admite IPv6 (consulte la documentación y el informe de errores con el historial de implementación).

Para escuchar en todas las interfaces disponibles:

python -m http.server --bind ::

Python 3.8 se lanzó el 2019-10-14.

Sí, lo hace. Al definir su servidor, hágalo así, como se ve aquí.

import socket
from http.server import HTTPServer

class HTTPServerV6(HTTPServer):
    address_family = socket.AF_INET6

y luego escucha así:

server = HTTPServerV6(('::', 8080), MyHandler)
server.serve_forever()

Hay un parche para permitir el enlace IPv6 http.server en Python 3. Lo probé y encontré que funciona en mi computadora portátil. Visite https://bugs.python.org/issue24209 para obtener más información. O simplemente haz lo siguiente:

Añadir las líneas después + al archivo /your/path/to/python/Lib/http/server.py. Tenga en cuenta las líneas sin + son el código original de server.py.

    server_address = (bind, port)

+   if ':' in bind:
+       ServerClass.address_family = socket.AF_INET6
+        
    HandlerClass.protocal_version = protocol    
    httpd = ServerClass(server_address, HandlerClass)

Entonces intenta:

python -m http.server -b *your-ipv6-addr* *your-port*

Al final de la web puedes encontrar los comentarios de otros administradores, tú además tienes la habilidad insertar el tuyo si dominas el tema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *