Guest User

Untitled

a guest
Apr 7th, 2018
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.76 KB | None | 0 0
  1. # TIC server simulator
  2. import socket
  3. import re
  4. import time
  5.  
  6. HOST = ''
  7. PORT = 3874
  8. s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  9. s.bind((HOST, PORT))
  10. s.listen(1)
  11.  
  12. print "TIC Server Waiting for client on port", PORT
  13.  
  14. while 1:
  15.     c, addr = s.accept()
  16.     print "I got a connection from", addr
  17.     c.send ("200 TIC Service ready\n")
  18.     while 1:
  19.         data = c.recv(1024)
  20.         if data:
  21.             print data,
  22.  
  23.             m = re.match("client", data)
  24.             if m:
  25.                 data = "200 Client Identity accepted"
  26.                 print data
  27.                 c.send (data + "\n")
  28.                 continue
  29.  
  30.             m = re.match("get unixtime", data)
  31.             if m:
  32.                 data = "200 " + str(int(time.time()))
  33.                 print data
  34.                 c.send (data + "\n")
  35.                 continue
  36.  
  37.             m = re.match("username (\w+)", data)
  38.             if m:
  39.                 user = m.group(1)
  40.                 data = "200 test choose your authentication challenge please"
  41.                 print data
  42.                 c.send (data + "\n")
  43.                 continue
  44.  
  45.             m = re.match("challenge md5", data)
  46.             if m:
  47.                 data = "200 0123456789abcdef0123456789abcdef"
  48.                 print data
  49.                 c.send (data + "\n")
  50.                 continue
  51.  
  52.             m = re.match("authenticate md5 (\w+)", data)
  53.             if m:
  54.                 passwd = m.group(1)
  55.                 data = "200 Successfully logged in using md5 as " + user
  56.                 print data
  57.                 c.send (data + "\n")
  58.                 continue
  59.  
  60.             m = re.match("tunnel show (\w+)", data)
  61.             if m:
  62.                 tun = m.group(1)
  63.                 data = "201 Showing tunnel information for " + tun + "\n"
  64.                 data += "TunnelId: " + tun + "\n"
  65.                 data += "Type: ayiya\n"
  66.                 data += "IPv6 Endpoint: 2001:db8:1900:aa::2\n"
  67.                 data += "IPv6 POP: 2001:db8:1900:aa::1\n"
  68.                 data += "IPv6 PrefixLength: 64\n"
  69.                 data += "Tunnel MTU: 1280\n"
  70.                 data += "Tunnel Name: Test\n"
  71.                 data += "POP Id: test\n"
  72.                 data += "IPv4 Endpoint: heartbeat\n"
  73.                 data += "IPv4 POP: 10.2.16.131\n"
  74.                 data += "UserState: enabled\n"
  75.                 data += "AdminState: enabled\n"
  76.                 data += "Password: " + passwd + "\n"
  77.                 data += "Heartbeat_Interval: 60\n"
  78.                 data += "202 Done"
  79.                 print data
  80.                 c.send (data + "\n")
  81.                 continue
  82.  
  83.             m = re.match("QUIT", data)
  84.             if m:
  85.                 c.close()
  86.                 break
Add Comment
Please, Sign In to add comment