场景描述:
1. MacOS 在已共享 WiFi 网络的时候无法使用 AirDrop,导致传单个文件很稀烂
2. 局域网的 IP 地址变化多端,可能是自己获得的公网 IP,也可能是内网 IP,手动输入很麻烦
3. 这个脚本非常简单,只是最近想到用二维码的方法,就分享一下
效果如下:

大家可以自己试用。
场景描述:
1. MacOS 在已共享 WiFi 网络的时候无法使用 AirDrop,导致传单个文件很稀烂
2. 局域网的 IP 地址变化多端,可能是自己获得的公网 IP,也可能是内网 IP,手动输入很麻烦
3. 这个脚本非常简单,只是最近想到用二维码的方法,就分享一下
效果如下:

大家可以自己试用。
|
amuDec 7, 2017
1
??? python -m SimpleHTTPServer
|
|
2
@amu 不显示 IP,还要自己输入,很麻烦
|
|
BOYPTDec 7, 2017
3
os.system("qrencode "+httpip + " &") (滑稽)
|
|
wwqgtxxDec 7, 2017
4
干嘛不发布到 pypi 呢
|
|
5
@wwqgtxx 哈哈哈太简单了,并且这个是有依赖项的。最近在搞其他的工程,这个就是顺手写的,就放到 gist 上吧。
|
|
6
@BOYPT Mac 共享 WiFi 的时候那个 IP 地址我输的时候内心真是 bi le gou le。
|
|
bashbotDec 7, 2017
7
??? python -m SimpleHTTPServer
这个 python 自带的呀,为啥要这么麻烦? 这个只能下载文件,给一个增加了上传文件功能的 https://raw.githubusercontent.com/colbot/python3learning/master/HttpServer/httpServer.py |
|
bashbotDec 7, 2017
8
把楼主的场景描述阅读了三遍,终于 get 到楼主的点了:
**手动输 IP 太麻烦,采用二维码传递 URL 信息** 我电脑常年多个网络工作,楼主这个代码能生成多个二维码么,还是怎么处理。 |
|
GG668v26Fd55CP5WDec 7, 2017 via iPhone
9
这个终端二维码可以的😄
|
|
10
@bashbot 你的代码写的很漂亮,之前我有用过一个 python2.7 的,但是对于 http 库不熟。感谢分享代码,已 merge。
|
|
amuDec 7, 2017
11
@douglas1997 其实我准确的使用场景为
alias myip="ifconfig |grep inet |grep 192| awk '{print $2}'" alias sharefile="myip && python -m SimpleHTTPServer 8001" 二维码感觉很鸡肋,PC 之间无法使用 |
|
lululauDec 7, 2017
12
两台电脑之间通过二维码之别信息也很麻烦吧。。。
如果都用 Mac 的话,可以用 Bonjour Hostname 互相访问: http://zhangsandeMacbook.local:8080/ |
|
lululauDec 7, 2017
13
获取 Bonjour LocalHostName:
scutil --get LocalHostName 后面再加上 .local 就可以了 |
|
14
@lululau 嗯好主意,之前还没注意到。我这边主要连公网服务器工作,局域网用的特别少。现在正好 iOS11 也有相机直接扫描出二维码的功能。
|
|
15
@amu 额,看来你都没看我的帖子 hh。都行吧,我觉得场景很多,PC 端我一般用 smb。
|
|
16
@bashbot 这个是一个库,qrencode。别人写的,自己写的有问题,效果比较差。好像也是 v2 的朋友写的。
|
|
wlh233Dec 7, 2017
17
想法很有意思
curl ifconfig.me | awk '{printf "http://%s:8000", $1}' | qrencode -t UTF8 && python3 -m http.server |
|
18
@wlh233 如何指定地址呢?我觉得指定地址也是非常重要的。
|
|
suntoryliquDec 7, 2017
19
哎呦握草,你他娘的简直是个天才……(请自己脑补李云龙脸)
|
|
jadec0derDec 7, 2017
20
不错不错,其实蛮有用的,我常年 python -m SimpleHTTPServer 8000 然后还要 ifconfig 看 ip
|
|
22
@tuimaochang 😂哈哈哈
|
|
ifaiiDec 7, 2017
23
@douglas1997 bug
~/work $ ./httpserver_fillcap.py . 8000 Traceback (most recent call last): File "./httpserver_fillcap.py", line 117, in get_wirelessip wirelessip = ni.ifaddresses(interf)[ni.AF_INET][0]['addr'] KeyError: 2 During handling of the above exception, another exception occurred: Traceback (most recent call last): File "./httpserver_fillcap.py", line 162, in <module> wirelessip = get_wirelessip("en0") File "./httpserver_fillcap.py", line 119, in get_wirelessip wirelessip = get_ip_address() File "./httpserver_fillcap.py", line 124, in get_ip_address s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) NameError: name 'socket' is not defined |
|
24
@ifaii sorry,I will fix it ASAP.
|
|
loadingDec 7, 2017 via Android
25
很好,找个时间试着写个 golang 的。
|
|
26
@ifaii Fixed.
|
|
27
@loading 大佬回帖了= = 谢谢~
|
|
hu6360567Dec 7, 2017 via iPhone
28
支持 range 吗?
|
|
29
@hu6360567 不支持,不过根据这个[repo]( https://github.com/smgoller/rangehttpserver)应该是非常容易拓展的。
|