* Remove unused python imports These changes have been auto-generated with: pip3 install isort autoflake isort -rc -sl . autoflake --remove-all-unused-imports -i -r . isort -rc -m 3 . Signed-off-by: Radostin Stoyanov <rstoyanov@fedoraproject.org> * python: remove redundant parenthesis Signed-off-by: Radostin Stoyanov <rstoyanov@fedoraproject.org>
55 lines
1.6 KiB
Python
Executable File
55 lines
1.6 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import argparse
|
|
import socket
|
|
from time import sleep
|
|
|
|
from scapy.all import IP, TCP, UDP, Ether, get_if_hwaddr, get_if_list, sendp
|
|
|
|
|
|
def get_if():
|
|
iface = None
|
|
for i in get_if_list():
|
|
if "eth0" in i:
|
|
iface = i
|
|
break
|
|
if not iface:
|
|
print("Cannot find eth0 interface")
|
|
exit(1)
|
|
return iface
|
|
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument("--p", help="Protocol name To send TCP/UDP etc packets", type=str)
|
|
parser.add_argument("--des", help="IP address of the destination", type=str)
|
|
parser.add_argument("--m", help="Raw Message", type=str)
|
|
parser.add_argument("--dur", help="in seconds", type=str)
|
|
args = parser.parse_args()
|
|
|
|
if args.p and args.des and args.m and args.dur:
|
|
addr = socket.gethostbyname(args.des)
|
|
iface = get_if()
|
|
if args.p == 'UDP':
|
|
pkt = Ether(src=get_if_hwaddr(iface), dst="ff:ff:ff:ff:ff:ff") / IP(dst=addr, tos=1) / UDP(dport=4321, sport=1234) / args.m
|
|
pkt.show2()
|
|
try:
|
|
for i in range(int(args.dur)):
|
|
sendp(pkt, iface=iface)
|
|
sleep(1)
|
|
except KeyboardInterrupt:
|
|
raise
|
|
elif args.p == 'TCP':
|
|
pkt = Ether(src=get_if_hwaddr(iface), dst="ff:ff:ff:ff:ff:ff") / IP(dst=addr, tos=1) / TCP() / args.m
|
|
pkt.show2()
|
|
try:
|
|
for i in range(int(args.dur)):
|
|
sendp(pkt, iface=iface)
|
|
sleep(1)
|
|
except KeyboardInterrupt:
|
|
raise
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|