NC 监听端口并保存数据包到日志文件每条数据包含接收的时间戳
和数据内容。
要实现这个功能,可以使用以下步骤:
- 使用 Python 的 socket 模块创建一个 TCP 或 UDP 的监听套接字。
- 在套接字上调用 listen() 方法开始监听端口。
- 使用 accept() 方法接受客户端连接请求,获得连接的套接字和客户端地址。
- 在连接的套接字上调用 recv() 方法接收数据包,并在接收到数据包时记录当前时间戳和数据内容。
- 将记录的时间戳和数据内容写入日志文件中,可以使用 Python 的 logging 模块进行日志记录。
下面是一个简单的示例代码:
import socket
import logging
import time
logging.basicConfig(filename='packet.log', level=logging.INFO)
HOST = 'localhost' # 监听的主机名或 IP 地址
PORT = 12345 # 监听的端口号
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind((HOST, PORT))
sock.listen(1)
while True:
conn, addr = sock.accept()
logging.info(f'Connection from {addr}')
while True:
data = conn.recv(1024)
if not data:
break
timestamp = time.time()
logging.info(f'{timestamp}: {data.decode()}')
conn.close()
这个代码监听 localhost 的 12345 端口,接收 TCP 连接。当有客户端连接上来时,会记录连接地址,并在接收到数据包时记录当前时间戳和数据内容,写入 packet.log 文件中。如果客户端关闭连接,会退出内层循环,关闭连接套接字。外层循环会继续监听端口,等待下一个客户端连接
原文地址: https://www.cveoy.top/t/topic/fimY 著作权归作者所有。请勿转载和采集!