I have been trying to print the udp packets only when the command -I eth0 -u is run. but I am getting all thee packets. pls give some suggestion
import argparse
import pyshark
import time
#import psutil
parser = argparse.ArgumentParser()
parser.add_argument('-u','--udp',required=False, action='store_true', help='to cpature only udp packet')
parser.add_argument('-v', '--verbose', help='be more specific', default=False, action='store_true')
parser.add_argument('-i', '--interface',metavar="", type=str, required=True, help='network interface' )
args = parser.parse_args()
capture = pyshark.LiveCapture(interface=args.interface)
for packet in capture.sniff_continuously():
localtime = time.asctime(time.localtime(time.time()))
protocol = packet.transport_layer
src_addr = packet.ip.src
src_port = packet[protocol].srcport
dst_addr = packet.ip.dst
dst_port = packet[protocol].dstport
print (localtime,"\t",protocol,"\t", src_addr,"\t", src_port,"\t", dst_addr, "\t", dst_port)
# comment
if args.verbose:
print (packet.show())
if args.udp:
packet = pyshark.LiveCapture(interface=args.interface, bpf_filter='udp port 53')
packet.sniff(packet_count=10)
print ("------------------------UDP Packets only -----------------------------")
print (packet)
Try it like this:
import argparse
import pyshark
import time
#import psutil
parser = argparse.ArgumentParser()
parser.add_argument('-u','--udp',required=False, action='store_true', help='to cpature only udp packet')
parser.add_argument('-v', '--verbose', help='be more specific', default=False, action='store_true')
parser.add_argument('-i', '--interface',metavar="", type=str, required=True, help='network interface' )
args = parser.parse_args()
if args.udp:
print ("------------------------UDP Packets only -----------------------------")
capture = pyshark.LiveCapture(interface=args.interface, bpf_filter='udp port 53')
else:
capture = pyshark.LiveCapture(interface=args.interface)
for packet in capture.sniff_continuously():
localtime = time.asctime(time.localtime(time.time()))
protocol = packet.transport_layer
src_addr = packet.ip.src
src_port = packet[protocol].srcport
dst_addr = packet.ip.dst
dst_port = packet[protocol].dstport
print(localtime,"\t",protocol,"\t", src_addr,"\t", src_port,"\t", dst_addr, "\t", dst_port)
if args.verbose:
print (packet.show())
print(packet)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.