757b04ad
rcavalie
création des data...
|
1
2
3
4
5
|
"""
Created on Thu Jan 11 15:22:56 2018
@author: Robin Cavalieri
IMA5SC - PFE 2018
P32 - Détection automatique de DoS sur réseau LoRa
|
648e6a93
rcavalie
enregistrement de...
|
6
|
Enregistrements des trafics normaux
|
757b04ad
rcavalie
création des data...
|
7
8
9
10
11
12
|
"""
##############################################################################
#LIBRAIRIES UTILES
##############################################################################
import csv;
import serial;
|
ec8f6a65
rcavalie
enregistrement du...
|
13
|
import time;
|
757b04ad
rcavalie
création des data...
|
14
15
16
17
18
|
##############################################################################
##############################################################################
#CONSTANTES
##############################################################################
|
c002e67e
rcavalie
trames normales e...
|
19
|
POPULATION = 3000;
|
757b04ad
rcavalie
création des data...
|
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
TRAME_SIZE = 13;
##############################################################################
##############################################################################
#FONCTIONS UTILES
##############################################################################
#Enregistre ou non la séquence reçue
def record_condition(sequence):
if (0x46 in sequence):
return True;
else:
return False;
##############################################################################
##############################################################################
#DEFINITION DE LA LECTURE DE PORT
##############################################################################
ser = serial.Serial(
#Pour Linux
#port='/dev/ttyACM0',
#Pour Windows
port='COM4',
#Vitesse de communication
baudrate = 9600,
#Parité
parity=serial.PARITY_NONE,
#Bit de stop
stopbits=serial.STOPBITS_ONE,
#Taille du message
bytesize=serial.EIGHTBITS,
#Out
timeout=1
)
counter=0;
##############################################################################
##############################################################################
#ENREGISTREMENT DES TRAMES
##############################################################################
#INITIALISATION
nb_individus = 1;
|
4d6b688b
rcavalie
Réseau de neurone...
|
61
62
|
#file_name = "C:/Users/Utilisateur/PFE/python/datasets/trame_norm.csv";
file_name = "C:/Users/Utilisateur/PFE/python/datasets/trame_attack.csv";
|
757b04ad
rcavalie
création des data...
|
63
64
65
66
|
fp = open(file_name, "w");
writer = csv.writer(fp);
#BOUCLE D'ENREGISTREMENT
|
c002e67e
rcavalie
trames normales e...
|
67
|
while(nb_individus <= POPULATION):
|
757b04ad
rcavalie
création des data...
|
68
69
70
71
72
73
|
#Vérification du contenu
x=ser.readline();
print(x);
#Condition d'enregistrement
if(record_condition(x)==True):
writer.writerow(('1', x[0:TRAME_SIZE]));
|
4d6b688b
rcavalie
Réseau de neurone...
|
74
|
#writer.writerow(('2', x[0:TRAME_SIZE]));
|
757b04ad
rcavalie
création des data...
|
75
76
77
78
|
nb_individus = nb_individus + 1;
#TRAITEMENT DES DONNEES : suppression des caractères inutiles
fp.write(open(file_name).read().replace('\n',''));
|
ec8f6a65
rcavalie
enregistrement du...
|
79
|
###A DEVELOPPER POUR SUPPRIMER TOUS LES CARACTERES INUTILES
|
757b04ad
rcavalie
création des data...
|
80
81
82
83
|
#FERMETURE DU FICHIER
fp.close();
##############################################################################
|
ec8f6a65
rcavalie
enregistrement du...
|
84
|
|
757b04ad
rcavalie
création des data...
|
85
|
##############################################################################
|
ec8f6a65
rcavalie
enregistrement du...
|
86
|
#ENREGISTREMENT DES PING
|
757b04ad
rcavalie
création des data...
|
87
|
##############################################################################
|
ec8f6a65
rcavalie
enregistrement du...
|
88
89
90
|
#INITIALISATION
nb_individus = 1;
temp = 0;
|
4d6b688b
rcavalie
Réseau de neurone...
|
91
92
|
#file_name = "C:/Users/Utilisateur/PFE/python/datasets/ping_norm.csv";
file_name = "C:/Users/Utilisateur/PFE/python/datasets/ping_attack.csv";
|
ec8f6a65
rcavalie
enregistrement du...
|
93
94
|
fp = open(file_name, "w");
writer = csv.writer(fp);
|
757b04ad
rcavalie
création des data...
|
95
|
|
ec8f6a65
rcavalie
enregistrement du...
|
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
#BOUCLE D'ENREGISTREMENT
while(nb_individus <= POPULATION+1):
#Vérification du contenu
x=ser.readline();
print(x);
if(record_condition(x)==True and nb_individus == 1):
debut = time.time();
nb_individus = nb_individus + 1;
temp = debut;
#Condition d'enregistrement après le 1er individu
if(record_condition(x)==True and nb_individus > 1):
fin = time.time();
delta_t = round((fin - temp)*1000); #stocké en ms
writer.writerow(('1', delta_t));
|
4d6b688b
rcavalie
Réseau de neurone...
|
113
|
#writer.writerow(('2', delta_t));
|
ec8f6a65
rcavalie
enregistrement du...
|
114
115
116
117
118
|
nb_individus = nb_individus + 1;
temp = fin;
#FERMETURE DU FICHIER
fp.close();
|
757b04ad
rcavalie
création des data...
|
119
120
121
122
|
##############################################################################
##############################################################################
#ENREGISTREMENT DE PUISSANCE DE SIGNAL
|
ec8f6a65
rcavalie
enregistrement du...
|
123
124
125
|
##############################################################################
#Ici j'enregistre le delta de puissance entre deux réception.
#Si le delta est trop important, alors il est possible que l'émetteur soit usurpé
|
6a900295
rcavalie
traitement pour r...
|
126
|
|
ec8f6a65
rcavalie
enregistrement du...
|
127
|
#INITIALISATION
|
6a900295
rcavalie
traitement pour r...
|
128
|
nb_individus = 1;
|
ec8f6a65
rcavalie
enregistrement du...
|
129
|
temp = 0;
|
4d6b688b
rcavalie
Réseau de neurone...
|
130
131
|
#file_name = "C:/Users/Utilisateur/PFE/python/datasets/rssi_norm.csv";
file_name = "C:/Users/Utilisateur/PFE/python/datasets/rssi_attack.csv";
|
ec8f6a65
rcavalie
enregistrement du...
|
132
133
134
135
|
fp = open(file_name, "w");
writer = csv.writer(fp);
#BOUCLE D'ENREGISTREMENT
|
6a900295
rcavalie
traitement pour r...
|
136
|
while(nb_individus <= POPULATION+2):
|
ec8f6a65
rcavalie
enregistrement du...
|
137
138
139
140
141
|
#Vérification du contenu
x=ser.readline();
print(x);
|
6a900295
rcavalie
traitement pour r...
|
142
143
144
145
|
#Ne pas enregistrer la premiere valeurs
if(record_condition(x)==True and nb_individus == 1):
nb_individus = nb_individus + 1;
|
9a50b3df
rcavalie
premiere version ok
|
146
|
if(record_condition(x)==True and nb_individus >1):
|
ec8f6a65
rcavalie
enregistrement du...
|
147
148
|
#On ne lit que la ligne de puissance
x=ser.readline();
|
6a900295
rcavalie
traitement pour r...
|
149
150
151
|
#Suppression des caractères parasites
#Conversion en décimal
|
9a50b3df
rcavalie
premiere version ok
|
152
|
y=(x[1]-48)*10+x[2]-48;
|
6a900295
rcavalie
traitement pour r...
|
153
|
print(y);
|
9a50b3df
rcavalie
premiere version ok
|
154
|
rssi_1 = y;
|
6a900295
rcavalie
traitement pour r...
|
155
|
#Calculs et écriture
|
ec8f6a65
rcavalie
enregistrement du...
|
156
|
temp = rssi_1;
|
9a50b3df
rcavalie
premiere version ok
|
157
158
|
#writer.writerow(('1', rssi_1));
writer.writerow(('2', rssi_1));
|
6a900295
rcavalie
traitement pour r...
|
159
|
nb_individus = nb_individus + 1;
|
ec8f6a65
rcavalie
enregistrement du...
|
160
|
|
ec8f6a65
rcavalie
enregistrement du...
|
161
162
163
|
#FERMETURE DU FICHIER
fp.close();
|
757b04ad
rcavalie
création des data...
|
164
|
##############################################################################
|