Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import string,cgi,socket, sys
- from os import curdir, sep, listdir, path, makedirs
- from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
- ricorda = []
- class MyHandler(BaseHTTPRequestHandler):
- def do_GET(self):
- try:
- global ricorda
- if self.path != "/favicon.ico":
- ricorda.append(self.path)
- if path.isfile(self.path):
- if self.path == "/hd2web/upload.html":
- self.wfile.write("<HTML><BODY><form method='POST' enctype='multipart/form-data' action=''>File da uploadare: <input type=file name=file><br><br>"+'Nome del file: <input type="text" name=nome><br><br><input type=submit value=Premi> per uploadare il file</form></body></html><br><br>'+"<a href="+ricorda[len(ricorda)-2]+">Indietro</a>")
- return
- elif self.path == "/hd2web/about.html":
- self.wfile.write('<html><p align="center"><h1>HD2Web</h1></p>')
- self.wfile.write("<b>Descrizione:</b> rende accessibili tutti i tuoi file da remoto, connettendosi via browser<br>")
- self.wfile.write("<b>Autore:</b> I.Ren<br>")
- self.wfile.write("<b>Licenza:</b> <a href=http://www.gnu.org/copyleft/gpl.html>GNU GPL</a><br>")
- self.wfile.write("<b>Versione:</b> 0.9 ipv4<br>")
- self.wfile.write("<b>Visita:</b> <a href=http://autoit.forumcommunity.net>autoit.forumcommunity.net</a>")
- self.wfile.write("<br><br><a href="+ricorda[len(ricorda)-2]+">Indietro</a>")
- return
- else:
- self.send_response(200)
- self.send_header('Content-Type', 'application/zip')
- self.send_header('Content-Disposition', 'attachment;'
- 'filename='+self.path[self.path.rfind("/")+1:len(self.path)])
- self.send_header("Content-Transfer-Encoding", "binary")
- self.end_headers()
- o = open(self.path)
- s = ""
- for line in o:
- s += line
- o.close()
- self.wfile.write(s)
- return
- else:
- lista = listdir(self.path)
- self.send_response(200)
- self.send_header('Content-type', 'text/html')
- self.end_headers()
- self.wfile.write("<b><a href=/hd2web/upload.html>Upload</a></b> <b><a href=/hd2web/about.html>About</a></b><br><br>")
- if self.path != "/":
- self.wfile.write("<a href="+self.path[0:self.path.find(self.path.split("/")[len(self.path.split("/"))-2])]+">..</a><br>")
- for i in sorted(lista):
- if i != "hd2web":
- if path.isfile(self.path+"/"+i) == False:
- self.wfile.write("DIR:  <a href="+self.path+i+"/>"+i+"</a><BR>")
- for i in sorted(lista):
- if path.isfile(self.path+"/"+i):
- self.wfile.write("FILE: <a href="+self.path+i+">"+i+"</a><BR>")
- return
- except IOError:
- self.send_error(404,'File Not Found: %s' % self.path)
- def do_POST(self):
- global rootnode
- ctype, pdict = cgi.parse_header(self.headers.getheader('content-type'))
- if ctype == 'multipart/form-data':
- query = cgi.parse_multipart(self.rfile,pdict)
- self.send_response(301)
- self.end_headers()
- nome = query.get("nome")
- data = query.get("file")
- dove = ricorda[len(ricorda)-2]
- o = open(dove+nome[0],"w")
- o.write(data[0])
- o.close()
- self.wfile.write("<html><b>Upload effettuato con successo.</b><br><br><a href="+ricorda[len(ricorda)-2]+">Indietro</a></html>")
- def main():
- if not path.exists("/hd2web/"):
- makedirs("/hd2web")
- if not path.exists("/hd2web/upload.html"):
- open("/hd2web/upload.html","w").close()
- if not path.exists("/hd2web/about.html"):
- open("/hd2web/about.html","w").close()
- try:
- s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- s.connect(("google.com",80))
- ip = s.getsockname()
- if len(sys.argv) > 1:
- porta = sys.argv[1]
- else:
- porta = 80
- server = HTTPServer((ip[0], int(porta)), MyHandler)
- print 'Server creato su: http://'+ip[0]+":"+str(porta)
- server.serve_forever()
- except KeyboardInterrupt:
- print '^C ricevuto, chiudo il server'
- server.socket.close()
- if __name__ == '__main__':
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement