使用scapy嗅探特定端口的流量
好的,我有一个客户端和一个服务器的代码。
服务器的代码是这样的:
import socket
import sys
HOST = ''
PORT = 5555
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print 'Socket created'
#Bind socket to local host and port
try:
s.bind((HOST, PORT))
except socket.error as msg:
print 'Bind failed. Error Code : ' + str(msg[0]) + ' Message ' + msg[1]
sys.exit()
print 'Socket bind complete'
#Start listening on socket
s.listen(10)
print 'Socket now listening'
#now keep talking with the client
while 1:
conn, addr = s.accept()
print 'Connected with ' + addr[0] + ':' + str(addr[1])
data = conn.recv(10000)
print data
s.close()
现在我想做的是对这些通过那个套接字(端口5555)进来的数据包进行一些分析。基本上,我想提取头部的标志。我试着用scapy库里的sniff()函数来做到这一点,具体可以参考这里的内容 获取数据包的源地址和端口号 - Scapy脚本
不过我只想监听那个端口进来的数据包,不想要其他的流量。
我该怎么做呢?
1 个回答
10
下面的代码会抓取所有目标端口号为5555的网络数据包,这个操作会在所有可用的网络接口上进行。
sniff(filter = 'dst port 5555')
当然,你也可以通过设置iface参数来指定你想要监听的具体网络接口。