Advertisement
Guest User

Untitled

a guest
Jan 12th, 2017
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. #!/usr/bin/env python
  2.  
  3. from twisted.conch.telnet import TelnetTransport, StatefulTelnetProtocol, ECHO
  4. from twisted.internet.protocol import ServerFactory
  5. from twisted.application.internet import TCPServer
  6. from twisted.application.service import Application
  7. from twisted.internet import reactor
  8.  
  9. class TelnetEcho(StatefulTelnetProtocol):
  10.  
  11. user = ''
  12. password = ''
  13. state = ''
  14.  
  15. def connectionMade(self):
  16. self.ip = self.transport.getPeer().host
  17. self.transport.write('Welcomern')
  18. self.transport.write('User: ')
  19. self.state = 'User'
  20.  
  21. def lineReceived(self, line):
  22. if self.state == 'User':
  23. self.user = line.strip()
  24. self.transport.will(ECHO)
  25. self.transport.write('Password: ')
  26. self.state = 'Password'
  27. elif self.state == 'Password':
  28. self.password = line.strip()
  29. self.transport.write('rn> ')
  30. self.transport.wont(ECHO)
  31. self.state = 'Prompt'
  32. elif self.state == 'Prompt':
  33. if line.strip() == 'quit':
  34. self.transport.loseConnection()
  35. return
  36. self.sendLine(line)
  37. self.transport.write('> ')
  38. return
  39.  
  40. def CreateMyFactory():
  41. factory = ServerFactory()
  42. factory.protocol = lambda: TelnetTransport(TelnetEcho)
  43. return factory
  44.  
  45. if __name__ == "__main__":
  46. MyFactory = CreateMyFactory()
  47. reactor.listenTCP(23, MyFactory)
  48. reactor.run() else:
  49. MyFactory = CreateMyFactory()
  50. service = TCPServer(23, MyFactory)
  51. application = Application("Telnet Echo Server")
  52. service.setServiceParent(application)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement