Использование scapy для хранения пакета и извлечения части данных - PullRequest
0 голосов
/ 07 мая 2020

Я использовал 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
...