首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python3: http.server支持ipv6吗?

Python3: http.server支持ipv6吗?
EN

Stack Overflow用户
提问于 2014-09-12 22:36:42
回答 4查看 18.8K关注 0票数 32

http.server (http是Python3.x模块)支持ipv6吗?例如,使用此命令行代码(启动For服务器):

代码语言:javascript
复制
python -m http.server [port]
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-09-17 01:56:21

是的,确实如此。在定义服务器时,可以这样做,如这里所示。

代码语言:javascript
复制
import socket
from http.server import HTTPServer

class HTTPServerV6(HTTPServer):
    address_family = socket.AF_INET6

然后像这样听:

代码语言:javascript
复制
server = HTTPServerV6(('::', 8080), MyHandler)
server.serve_forever()
票数 14
EN

Stack Overflow用户

发布于 2019-04-03 18:13:43

从Python3.8开始,python -m http.server支持IPv6 (参见文档带有实现历史的bug报告)。

要侦听所有可用的接口:

代码语言:javascript
复制
python -m http.server --bind ::

Python3.8是在2019-10-14上发布的。

票数 43
EN

Stack Overflow用户

发布于 2017-03-30 08:42:29

在Python3中有一个允许IPv6绑定在http.server中的修补程序。我尝试了它,发现它在我的笔记本上工作。请访问https://bugs.python.org/issue24209获取更多信息。或者做以下几件事:

+后面的行添加到文件/your/path/to/python/Lib/http/server.py中。请注意没有+的行是server.py的原始代码。

代码语言:javascript
复制
    server_address = (bind, port)

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

然后试着:

代码语言:javascript
复制
python -m http.server -b *your-ipv6-addr* *your-port*
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25817848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档