Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- from twisted.conch.telnet import TelnetTransport, StatefulTelnetProtocol, ECHO
- from twisted.internet.protocol import ServerFactory
- from twisted.application.internet import TCPServer
- from twisted.application.service import Application
- from twisted.internet import reactor
- class TelnetEcho(StatefulTelnetProtocol):
- user = ''
- password = ''
- state = ''
- def connectionMade(self):
- self.ip = self.transport.getPeer().host
- self.transport.write('Welcomern')
- self.transport.write('User: ')
- self.state = 'User'
- def lineReceived(self, line):
- if self.state == 'User':
- self.user = line.strip()
- self.transport.will(ECHO)
- self.transport.write('Password: ')
- self.state = 'Password'
- elif self.state == 'Password':
- self.password = line.strip()
- self.transport.write('rn> ')
- self.transport.wont(ECHO)
- self.state = 'Prompt'
- elif self.state == 'Prompt':
- if line.strip() == 'quit':
- self.transport.loseConnection()
- return
- self.sendLine(line)
- self.transport.write('> ')
- return
- def CreateMyFactory():
- factory = ServerFactory()
- factory.protocol = lambda: TelnetTransport(TelnetEcho)
- return factory
- if __name__ == "__main__":
- MyFactory = CreateMyFactory()
- reactor.listenTCP(23, MyFactory)
- reactor.run() else:
- MyFactory = CreateMyFactory()
- service = TCPServer(23, MyFactory)
- application = Application("Telnet Echo Server")
- service.setServiceParent(application)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement