此代码不应捕获任何数据包。我在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()
我希望它能捕获数据包,但没有任何反应。
我不熟悉套接字编码,但熟悉捕获数据包。
据我所知,你必须有一个可以打开监控模式的无线网卡。
是一种模式,允许您捕获甚至不捕获您的数据包。
作为一个简单的建议,尝试暂时运行不带文件的程序,
只需打印输出并检查你得到了什么,因为文件关闭,检查最新情况可能是个好主意。