使用scapy嗅探特定端口上的流量

suk*_*vir 4 python sockets scapy packet-sniffers

好的,我有客户端和服务器代码.

服务器代码如下所示:

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()
Run Code Online (Sandbox Code Playgroud)

现在我想做的是对该套接字上的这些传入数据包进行一些分析(端口5555).基本上我想要提取头标志.我试图使用scapy函数sniff()来执行此操作,如此处获取数据包的源地址和端口号 - Scapy脚本

只有我想能够只是嗅到进入该端口的数据包..而不是任何其他流量.

我该怎么做呢?

woo*_*919 7

以下内容将捕获所有可用接口上目标端口号等于5555的所有数据包.

sniff(filter = 'dst port 5555')
Run Code Online (Sandbox Code Playgroud)

您当然可以通过指定iface参数来指定要嗅探的界面.