首页 » InfoTech »

用Python自带HTTP服务器实现局域网共享

2018年10月4日 / 9次阅读
Python

打开支付宝首页,搜索“529018372”,即可领取红包!可重复领。

特色图片

Python标准库中自带一个HTTP服务器,一般在Windows环境下安装好Python之后,我们可以通过下面这条命令,直接启动HTTP服务器。默认端口是8000.

python -m http.server

虽然这个HTTP服务器不能像Apache那样强大,但是麦新杰认为,Python自带的这个HTTP服务器用来做局域网内临时的文件共享非常方便。

比如:我在Windows环境下编写调试Python程序,最后要拿到Linux虚拟机里面去跑一跑,这个时候,就需要将一系列.py文件传递到Linux虚拟机里面去。这时,可以打开python自带的HTTP服务器,然后在Linux下使用wget取文件即可。下面详细说明一下:

1, 打开Python自带的HTTP服务器

python -m http.server

你在什么目录下运行这条命令,HTTP服务器就默认在那个目录下运行。所以,你必须要在你要共享的文件所在的文件夹下面启动服务器。

服务器运行起来之后,你在本机也可以查看效果,直接在浏览器输入127.0.0.1:8000

本机验证打开的Python自带HTTP服务器

本机验证打开的Python自带HTTP服务器

2, 获取本地IP地址

确认HTTP服务器打开之后,我们需要获取本机的IP地址,以便于在Linux虚拟机中访问,注意:这时我们要查看的是外层Windows与内层Linux虚拟机对应的IP地址。通过ipconfig命令查看:

C:\Users\Administrator>ipconfig

Windows IP 配置

以太网适配器 本地连接:

连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::a90b:8322:caab:f344%12
IPv4 地址 . . . . . . . . . . . . : 192.168.12.100
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.12.1

以太网适配器 VMware Network Adapter VMnet1:

连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::1c7e:7392:d34:20c7%14
IPv4 地址 . . . . . . . . . . . . : 192.168.195.1
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . :

显然,我们需要的IP地址是:192.168.195.1

3, 在内层Linux虚拟机中获取src目录下的文件

(LinkCheck) xinlin@ubuntu:~/LinkCheck/src$ wget http://192.168.195.1:8000/src/LinkCheck.py
--2018-10-03 22:22:52-- http://192.168.195.1:8000/src/LinkCheck.py
Connecting to 192.168.195.1:8000... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1197 (1.2K) [text/plain]
Saving to: ‘LinkCheck.py’

LinkCheck.py 100%[===================>] 1.17K --.-KB/s in 0.03s

2018-10-03 22:22:52 (40.9 KB/s) - ‘LinkCheck.py’ saved [1197/1197]

(LinkCheck) xinlin@ubuntu:~/LinkCheck/src$ wget http://192.168.195.1:8000/src/link.py
--2018-10-03 22:23:12-- http://192.168.195.1:8000/src/link.py
Connecting to 192.168.195.1:8000... connected.
HTTP request sent, awaiting response... 200 OK
Length: 960 [text/plain]
Saving to: ‘link.py’

link.py 100%[===================>] 960 --.-KB/s in 0.02s

2018-10-03 22:23:12 (39.8 KB/s) - ‘link.py’ saved [960/960]

(LinkCheck) xinlin@ubuntu:~/LinkCheck/src$ wget http://192.168.195.1:8000/src/website.py
--2018-10-03 22:23:19-- http://192.168.195.1:8000/src/website.py
Connecting to 192.168.195.1:8000... connected.
HTTP request sent, awaiting response... 200 OK
Length: 12155 (12K) [text/plain]
Saving to: ‘website.py’

website.py 100%[===================>] 11.87K --.-KB/s in 0.03s

2018-10-03 22:23:19 (401 KB/s) - ‘website.py’ saved [12155/12155]

(LinkCheck) xinlin@ubuntu:~/LinkCheck/src$ ll
total 28
drwxrwxr-x 2 xinlin xinlin 4096 Oct 3 22:23 ./
drwxrwxr-x 6 xinlin xinlin 4096 Oct 3 22:18 ../
-rw-rw-r-- 1 xinlin xinlin 1197 Oct 2 01:05 LinkCheck.py
-rw-rw-r-- 1 xinlin xinlin 960 Oct 1 23:15 link.py
-rw-rw-r-- 1 xinlin xinlin 12155 Oct 2 01:05 website.py
(LinkCheck) xinlin@ubuntu:~/LinkCheck/src$

通过wget,成功取得了共享的三个.py文件。

4, HTTP服务器界面上显示如下

(LinkCheck) D:\pyve\LinkCheck>python -m http.server
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
127.0.0.1 - - [04/Oct/2018 13:00:16] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [04/Oct/2018 13:00:17] code 404, message File not found
127.0.0.1 - - [04/Oct/2018 13:00:17] "GET /favicon.ico HTTP/1.1" 404 -
127.0.0.1 - - [04/Oct/2018 13:00:23] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [04/Oct/2018 13:00:23] code 404, message File not found
127.0.0.1 - - [04/Oct/2018 13:00:23] "GET /favicon.ico HTTP/1.1" 404 -
127.0.0.1 - - [04/Oct/2018 13:00:25] "GET /src/ HTTP/1.1" 200 -
127.0.0.1 - - [04/Oct/2018 13:00:27] "GET /src/__pycache__/ HTTP/1.1" 200 -
192.168.195.129 - - [04/Oct/2018 13:01:49] "GET /src HTTP/1.1" 301 -
192.168.195.129 - - [04/Oct/2018 13:01:49] "GET /src/ HTTP/1.1" 200 -
192.168.195.129 - - [04/Oct/2018 13:02:06] "GET /src/ HTTP/1.1" 200 -
192.168.195.129 - - [04/Oct/2018 13:02:25] "GET /src/LinkCheck.py HTTP/1.1" 200
-
127.0.0.1 - - [04/Oct/2018 13:02:32] "GET /src/ HTTP/1.1" 200 -
192.168.195.129 - - [04/Oct/2018 13:02:45] "GET /src/link.py HTTP/1.1" 200 -
192.168.195.129 - - [04/Oct/2018 13:02:52] "GET /src/website.py HTTP/1.1" 200 -
127.0.0.1 - - [04/Oct/2018 14:15:23] code 404, message File not found
127.0.0.1 - - [04/Oct/2018 14:15:23] "GET /favicon.ico HTTP/1.1" 404 -
127.0.0.1 - - [04/Oct/2018 14:15:24] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [04/Oct/2018 14:15:50] code 404, message File not found
127.0.0.1 - - [04/Oct/2018 14:15:50] "GET /favicon.ico HTTP/1.1" 404 -
127.0.0.1 - - [04/Oct/2018 14:15:50] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [04/Oct/2018 14:15:51] code 404, message File not found
127.0.0.1 - - [04/Oct/2018 14:15:51] "GET /favicon.ico HTTP/1.1" 404 -

关闭窗口,或者Ctrl+C,即可关闭这个HTTP服务器。

5, 自定义端口启动HTTP服务器

(LinkCheck) D:\pyve\LinkCheck>python -m http.server 8080
Serving HTTP on 0.0.0.0 port 8080 (http://0.0.0.0:8080/) ...

端口号直接加在命令后面即可。

 

在局域网内共享任何文件,使用Python自带HTTP服务器的方式,简单可行效率高。记住,我们也可以反过来,通过在Linux虚拟机开启Python的HTTP服务器,共享文件,在外面Windows也可以轻松获取。

本文链接:http://www.maixj.net/ict/python-http-19093
云上小悟 麦新杰(QQ:1093023102)

相关文章

评论是美德

无力满足评论实名制,评论对非实名注册用户关闭,有事QQ:1093023102.


前一篇:
后一篇:

栏目精选

云上小悟,麦新杰的独立博客

Ctrl+D 收藏本页

栏目

AD

ppdai

©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有 备案号:苏ICP备14045477号-1。云上小悟网站部分内容来源于网络,转载目的是为了整合信息,收藏学习,服务大家,有些转载内容也难以判断是否有侵权问题,如果侵犯了您的权益,请及时联系站长,我会立即删除。

网站二维码
go to top