此代码在应有的情况下不会捕获任何数据包。我在Mac OS上。
我已经搜索了堆栈,但由于是为Windows,Linux或python 2编写的,所以没有代码起作用。
import socket
import time
import datetime
import os
host = "127.0.0.1"
s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_TCP)
s.bind((host, 0))
s.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1)
amount = 0
print('------------------------------------------------------------------------')
print('[*]TIME:'+str(datetime.datetime.fromtimestamp(time.time())))
print('------------------------------------------------------------------------')
print('[+]CAPTURING PACKETS')
print('------------------------------------------------------------------------')
print('')
while True:
amount = amount + 1
create = open(('PACKET '+str(amount)+'.txt'),'w+')
create.write('')
f = open(('PACKET '+str(amount)+'.txt'),'w')
PACKET = s.recvfrom(65565)
f.write(PACKET)
print('--------------------------------------------------------------------')
print('[*]TIME:'+str(datetime.datetime.fromtimestamp(time.time())))
print('--------------------------------------------------------------------')
print('[+]PACKET '+str(amount))
print('--------------------------------------------------------------------')
print('')
f.close()
create.close()
我希望它能够捕获数据包,但是什么也没发生。
答案 0 :(得分:0)
我不熟悉套接字编码,但是熟悉捕获数据包。
据我所知,您必须具有可以在显示器模式下打开的无线网卡。
是一种模式,它甚至可以捕获数据包。
作为一个简单的建议,尝试暂时不使用文件运行程序,
仅打印输出并检查您得到了什么,因为文件已关闭,所以检查一下情况可能是个好主意。