Guest User

CamIce

a guest
Feb 26th, 2013
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.92 KB | None | 0 0
  1. from socket import *
  2. import threading
  3. from _thread import *
  4. import os
  5.  
  6. config = open("config.conf", "r")
  7. config_list = config.read().splitlines()
  8. config.close()
  9. web_dir = config_list[3]
  10. main = config_list[2]
  11.  
  12. def handler(clientsock,addr):
  13.     while 1:
  14.         os.chdir(web_dir)
  15.         #try:
  16.         data = clientsock.recv(BUFSIZ)
  17.         #except ConnectionResetError:
  18.         #print("[*]", ADDR, "disconnected or lost connection")
  19.         #exit()
  20.         data = str(data, encoding='UTF8')
  21.         print(ADDR, ":", data)
  22.         if not data:
  23.             break
  24.         request = data.split()
  25.         if request[0] == "GET":
  26.             req_file = request[1]
  27.             if req_file == "/":
  28.                 req_file = main
  29.             file_list = os.listdir()
  30.             if req_file in file_list:
  31.                 file = open(req_file, "rb")
  32.                 file_data = file.read()
  33.                 file.close()
  34.                 clientsock.send(file_data)
  35.                 print("File found and sent")
  36.                 clientsock.close()
  37.             else:
  38.                 file = open("404.html", "rb")
  39.                 file_data = file.read()
  40.                 file.close()
  41.                 print("File does not exist")
  42.                 clientsock.send(file_data)
  43.                 clientsock.close()
  44.     print("[*]"+ADDR, "disconnected")
  45.     clientsock.close()
  46.  
  47. if __name__=='__main__':
  48.     print("[*] starting server")
  49.     HOST = 'localhost'
  50.     PORT = 80
  51.     BUFSIZ = 1024
  52.     ADDR = (HOST, PORT)
  53.     print("[*]Server set at", ADDR[0], "on port", ADDR[1])
  54.     serversock = socket(AF_INET, SOCK_STREAM)
  55.     serversock.bind(ADDR)
  56.     print("[*]Starting listening")
  57.     serversock.listen(2)
  58.     print("[*]Awaiting connections")
  59.  
  60.     while 1:
  61.         clientsock, addr = serversock.accept()
  62.         ADDR = addr[0]
  63.         print('[*]Connection etablished with:', ADDR)
  64.         start_new_thread(handler, (clientsock, addr))
Advertisement
Add Comment
Please, Sign In to add comment