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

时间:2014-07-29 10:32:36

标签: 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()

现在我想做的是对该套接字上的这些传入数据包进行一些分析(端口5555)。基本上我想要提取头标志。我试图使用scapy函数sniff()来执行此操作,如Fetch source address and port number of packet - Scapy script

所示

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

我该怎么做?

1 个答案:

答案 0 :(得分:6)

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

sniff(filter = 'dst port 5555')

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