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.