mirror of
https://github.com/hastagAB/Awesome-Python-Scripts.git
synced 2025-02-07 00:50:54 +00:00
35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
import pyshark
|
|
import argparse
|
|
from datetime import datetime
|
|
|
|
|
|
def sniff(interface, n_packet, filename):
|
|
capture = pyshark.LiveCapture(interface=interface)
|
|
capture.sniff(packet_count=n_packet)
|
|
|
|
with open(filename + '.txt', 'a+') as file:
|
|
for n, pkt in enumerate(capture):
|
|
file.write("Packet #" + str(n + 1) + ':\n')
|
|
file.write(str(pkt) + '\n')
|
|
capture.close()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
programDescription = '''
|
|
Command Line Tool: python sniffer using pyshark; Need to run with `sudo`
|
|
'''
|
|
|
|
parser = argparse.ArgumentParser(description=programDescription)
|
|
parser.add_argument("--interface", "-i", help="interface")
|
|
parser.add_argument("--number", "-n", help="number of packets")
|
|
parser.add_argument("--filename", "-f", help="filename to save")
|
|
args = parser.parse_args()
|
|
|
|
interface = args.interface if args.interface else 'en0'
|
|
number = abs(int(args.number)) if args.number else 50
|
|
filename = args.filename if args.filename else "result"
|
|
|
|
sniff(interface, number, filename)
|
|
|
|
print('Sniffing is completed at %s' % datetime.now())
|