用Python实现一个简单的能够上传下载的HTTP服务器

时间:2021-05-23

#!/usr/bin/env python#coding=utf-8# modifyDate: 20120808 ~ 20120810# 原作者为:bones7456, http://li2z.cn/# 修改者为:decli@qq.com# v1.2,changeLog:# +: 文件日期/时间/颜色显示、多线程支持、主页跳转# -: 解决不同浏览器下上传文件名乱码问题:仅IE,其它浏览器暂时没处理。# -: 一些路径显示的bug,主要是 cgi.escape() 转义问题# ?: notepad++ 下直接编译的server路径问题 """ 简介:这是一个 python 写的轻量级的文件共享服务器(基于内置的SimpleHTTPServer模块), 支持文件上传下载,只要你安装了python(建议版本2.6~2.7,不支持3.x), 然后去到想要共享的目录下,执行: python SimpleHTTPServerWithUpload.py 1234 其中1234为你指定的端口号,如不写,默认为 8080 然后访问 http://localhost:1234 即可,localhost 或者 1234 请酌情替换。""" """Simple HTTP Server With Upload. This module builds on BaseHTTPServer by implementing the standard GETand HEAD requests in a fairly straightforward manner. """ __version__ = "0.1"__all__ = ["SimpleHTTPRequestHandler"]__author__ = "bones7456"__home_page__ = "" import os, sys, platformimport posixpathimport BaseHTTPServerfrom SocketServer import ThreadingMixInimport threadingimport urllib, urllib2import cgiimport shutilimport mimetypesimport reimport time try: from cStringIO import StringIOexcept ImportError: from StringIO import StringIO def get_ip_address(ifname): import socket import fcntl import struct s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) return socket.inet_ntoa(fcntl.ioctl( s.fileno(), 0x8915, # SIOCGIFADDR struct.pack('256s', ifname[:15]) )[20:24]) class GetWanIp: def getip(self): try: myip = self.visit("http://ip.taobao.com/service/getIpInfo.php?ip=myip") except: print "ip.taobao.com is Error" try: myip = self.visit("http:///dvliman/SimpleHTTPServer

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章