Я использовал min inet и среду контроллера pox. Внутри пользовательского каталога min inet у меня есть файл lauchTraffi c. python, как показано ниже, который использует scapy для отправки пакетов с данными.
# forming ddos information
CSV_FILE = "only_ddos.csv"
df = pd.read_csv(CSV_FILE)
x_train = np.array(df[["Flow Duration", "Tot Fwd Pkts", "TotLen Fwd Pkts",
"Flow IAT Mean","Flow IAT Std" ,"Flow IAT Max", "Flow IAT Min"]])
normalized_x = preprocessing.normalize(x_train)
#getting the ip address to send attack packets
dstIP = sys.argv[1:]
print dstIP
src_port = 80
dst_port = 1
# open interface eth0 to send packets
interface = popen('ifconfig | awk \'/eth0/ {print $1}\'').read()
for i in xrange(0,500):
# form the packet
message = np.random.choice(x_train[0], 1, replace=False)
packets = Ether()/IP(dst=dstIP,src=sourceIPgen())/UDP(dport=dst_port,sport=src_port)/str(message)
print(repr(packets))
# send packet with the defined interval (seconds)
sendp(packets,iface=interface.rstrip(),inter=0.025)
Кроме того, внутри каталога pox я пытаюсь измените файл l3_learning.py, чтобы захватить отправленный пакет. Не могли бы вы порекомендовать мне библиотеку для хранения пакета и извлечения из него только раздела данных. Код ниже предоставляет мне сообщение об ошибке с "AttributeError: объект 'ethe rnet' не имеет атрибута 'getPacketdata"
from pox.lib.packet.ethernet import ethernet, ETHER_BROADCAST
import tensorflow as tf #Added
import numpy as np #Added
x_test = packet.getPacketdata();
classes = model.predict_classes(x_test)
#if ent_obj.value <0.5:
if classes == '[[1]]': # Modified
preventing()
if timerSet is not True:
Timer(2, _timer_func, recurring=True)
timerSet=False
else:
timerSet=False