python操作ipv6_用python开启临时http服务器及其ipv6支持

python可以只用一行代码创建简单的http服务器,用来把linux的vps中文件拖回本地非常方便

高校的同学也可以用这个方法,通过ipv6给同学分享文件

pyhton3

python -m http.server

之后会看到输出Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...

pyhton2

python -m SimpleHTTPServer

之后会看到输出Serving HTTP on 0.0.0.0 port 8000 ...

之后在浏览器地址栏输入 ip地址:端口 即可访问

但是问题来了,无论py2还是py3,默认都不支持ipv6

为了解决ipv6支持的问题,2、3的方法还是略有区别

python3

python3安装目录/lib/http/server.py 的如下位置添加带有加号的两行

就是把

server_address = (bind, port) HandlerClass.protocol_version = protocol

改成

server_address = (bind, port) if ':' in bind: ServerClass.address_family = socket.AF_INET6 HandlerClass.protocol_version = protocol

然后代码

python -m http.server -b [::]

之后会看到输出Serving HTTP on :: port 8000 (http://:::8000/) ...

python2

不用修改文件,直接一行代码

python -c "import socket,SocketServer,CGIHTTPServer;SocketServer.TCPServer.address_family=socket.AF_INET6;CGIHTTPServer.test()" 8080

之后会看到输出Serving HTTP on :: port 8080 ...

实际上py2的这一行代码,是有如下三行的脚本文件生成的,python调用这个脚本,8080为其参数,是端口

import socket,SocketServer,CGIHTTPServer

SocketServer.TCPServer.address_family=socket.AF_INET6

CGIHTTPServer.test()

注意

1.浏览器访问ipv6地址需要加方括号

[ipv6地址]:端口

2.文件分享的路径就是命令行当前工作目录

3.代码运行在操作系统命令行,不是python命令行,例如win的cmd或者powershell,linux的bash命令行等

4.以上方法均来自互联网非本人原创

感谢原作者搞出这么方便的东西!

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值