在deepin23上试了下,很方便,做为局域网文件服务器很好用
IPv6外网试了一下,没成功,是脚本不支持IPv6还是因为安全特意把这块屏蔽了
在deepin23上试了下,很方便,做为局域网文件服务器很好用
IPv6外网试了一下,没成功,是脚本不支持IPv6还是因为安全特意把这块屏蔽了
因为它好像是默认监听的ipv4的本机127.0.0.1。你可以修改一下监听地址,改成你的ipv6地址。
class GetWanIp:
def getip(self):
return "127.0.0.1" # 这里修改成你的 IPv6
因为它好像是默认监听的ipv4的本机127.0.0.1。你可以修改一下监听地址,改成你的ipv6地址。
class GetWanIp:
def getip(self):
return "127.0.0.1" # 这里修改成你的 IPv6
应该两个都能绑吧
这段逻辑不是用来绑IP的,我暂时搞不定怎么输出正确的网卡IP所以直接写死了个localhost,这个是方便访问用的
在deepin23上试了下,很方便,做为局域网文件服务器很好用
IPv6外网试了一下,没成功,是脚本不支持IPv6还是因为安全特意把这块屏蔽了
没写v6的绑定,我看看改一下
或者你用nginx反代一下也可以
应该两个都能绑吧
这段逻辑不是用来绑IP的,我暂时搞不定怎么输出正确的网卡IP所以直接写死了个localhost,这个是方便访问用的
原来如此。
需要这么修改
class ThreadingSimpleServer(ThreadingMixIn, HTTPServer):
address_family = socket.AF_INET6
但是对IPv6的使用不熟悉,
修改之后使用 http://[::]:8080/ 可以打开,使用 ip a 查看到的IPv6地址,无法打开。
应该两个都能绑吧
这段逻辑不是用来绑IP的,我暂时搞不定怎么输出正确的网卡IP所以直接写死了个localhost,这个是方便访问用的
获取本机的默认网络地址
class GetWanIp:
def getip(self):
ip = "127.0.0.1"
try:
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(('114.114.114.114', 80))
ip = s.getsockname()[0]
finally:
s.close()
return ip
获取本机的默认网络地址
class GetWanIp:
def getip(self):
ip = "127.0.0.1"
try:
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(('114.114.114.114', 80))
ip = s.getsockname()[0]
finally:
s.close()
return ip
让GPT改了下,现在可以v4了
v6还是搞不定,但是提供服务没问题了
让GPT改了下,现在可以v4了
v6还是搞不定,但是提供服务没问题了
浏览器使用IPv6访问的时候需要对IP地址加中括号,是不是你测试的时候没加?
http://[IPv6]:8080
http://[::1]:8080
浏览器使用IPv6访问的时候需要对IP地址加中括号,是不是你测试的时候没加?
http://[IPv6]:8080
http://[::1]:8080
v6访问没问题,但是列出列不出来
你这是对主题魔改了?咋做的?
后续想加点基础的文件管理功能,删除啥的,不过估计全要靠GPT咯
v6访问没问题,但是列出列不出来
你这是对主题魔改了?咋做的?
后续想加点基础的文件管理功能,删除啥的,不过估计全要靠GPT咯
以前用过一个类似的Python文件管理项目,当时改了一下样式,方便区分文件和文件夹。
就顺手搬过来了。
样式部分
f.write(b'''
''')
文件、文件夹图标
for name in listx:
fullname = os.path.join(path, name)
displayname = linkname = name
file_size = ''
link_icon = ''
if os.path.isdir(fullname):
linkname = name + "/"
displayname = name + "/"
link_icon = ''
elif os.path.islink(fullname):
displayname = name + "@"
link_icon = ''
else:
file_size = sizeof_fmt(os.path.getsize(fullname)) if os.path.isfile(fullname) else ''
link_icon = ''
f.write(b'' % urllib.parse.quote(linkname).encode('utf-8'))
f.write(b'%s' % link_icon.encode('utf-8'))
f.write(b'%s%s \n' % (
html.escape(displayname).encode('utf-8'),
file_size.encode('utf-8')
))
以前用过一个类似的Python文件管理项目,当时改了一下样式,方便区分文件和文件夹。
就顺手搬过来了。
样式部分
f.write(b'''
''')
文件、文件夹图标
for name in listx:
fullname = os.path.join(path, name)
displayname = linkname = name
file_size = ''
link_icon = ''
if os.path.isdir(fullname):
linkname = name + "/"
displayname = name + "/"
link_icon = ''
elif os.path.islink(fullname):
displayname = name + "@"
link_icon = ''
else:
file_size = sizeof_fmt(os.path.getsize(fullname)) if os.path.isfile(fullname) else ''
link_icon = ''
f.write(b'' % urllib.parse.quote(linkname).encode('utf-8'))
f.write(b'%s' % link_icon.encode('utf-8'))
f.write(b'%s%s \n' % (
html.escape(displayname).encode('utf-8'),
file_size.encode('utf-8')
))
我凑,我刚想说我想做成纯离线的你就改好了
牛逼兄弟
原来如此。
需要这么修改
class ThreadingSimpleServer(ThreadingMixIn, HTTPServer):
address_family = socket.AF_INET6
但是对IPv6的使用不熟悉,
修改之后使用 http://[::]:8080/ 可以打开,使用 ip a 查看到的IPv6地址,无法打开。
按这个修改之后可以用IPv6地址访问,IPv6地址是64前缀的240e开头地址,但是只能在局域网里,外网比如手机访问不了,这个可能涉及的问题太多了,有可能是防火墙或者运营商阻隔,试了下改成21端口也访问不了,算了,不折腾外网了,毕竟也基本不会外网直接访问,也不安全。
看了一下,路由器上的设置有问题,改了设置之后,手机网络可以IPv6访问虚拟机里的FnOS了,这个脚本的服务还是访问不了
看了一下,路由器上的设置有问题,改了设置之后,手机网络可以IPv6访问虚拟机里的FnOS了,这个脚本的服务还是访问不了
看了FnOS能访问的端口是8000,将脚本的默认端口从8080改成8000就可以访问了👍
https://gitee.com/shenmo7192/momo-and-mox-tool-scripts/blob/master/updowner.py
Python3重置了一下,现在支持上传进度条
用法:端口号 -d 根目录
若需要作为上传服务反代,请添加以下nginx参数,分别是延长超时时长和禁用包大小限制