decouvre.php
4.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
<!DOCTYPE html>
<html>
<head>
<title>Choix appareil</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css"
rel="stylesheet"
integrity="sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x"
crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/js/bootstrap.bundle.min.js"
integrity="sha384-gtEjrD/SeCtmISkJkNUaaKMoLD0//ElJ19smozuHV6z3Iehds+3Ulb9Bn9Plx0x4"
crossorigin="anonymous">
</script>
<style>
.form-check-error{
border-color:red;
}
table{
border-collapse: collapse;
border: 2px solid rgb(200,200,200);
letter-spacing: 1px;
front-size: 0.8rem;
}
td,th{
border: 1px solid rgb(190,190,190);
padding: 10px 20px;
}
td{
text-align: center;
}
caption{
padding: 10px;
}
</style>
</head>
<body>
<?php session_unset(); ?>
<form method="post" action="index.html">
<input type="submit" value="Retour" class="btn btn-secondary"/>
</form>
<br/>
<!-- TODO : Animation de chargement ? -->
<form method="post" action="decouvre.php">
<input type="submit" value="Rechercher à nouveau" class="btn btn-success"/>
</form>
<br/>
<?php
$txt = shell_exec('lxi discover');
if(strpos($txt,"Found")==false){
echo "Aucun appareil trouvé" ;
}else{
$i=0; /* Variable d'iteration */
$nb=0; /* Nombre d'appareils découverts */
$txt = nl2br($txt); /* Ajout sauts à la ligne dans le texte recu */
while(strpos($txt,"Found")!=false){
$phrase = "";
$adresse = "";
for($i=strpos($txt,"Found"),$j=0;$txt[$i]!='<';$i++,$j++){ /* Pour toutes les phrases contenant 'Found' */
$phrase[$j]=$txt[$i]; /* Traitement des phrases contenant 'Found' une par une */
}
preg_match('/"([^"]+)"/',$phrase,$tableau); /* Nom de l'appareil entre guillemets donc en prends ce que l'on trouve entre les guillemets */
//print_r($tableau); /* DEBUG */
$mots = explode(" ",$phrase);
//echo count($mots); /* DEBUG */
//print_r($mots); /* DEBUG */
/* Si la phrase contient plus de 5 mots, alors on prends le dernier mot comme adresse IP
* car les phrases sont sous la forme 'Found "NAME" on address IP'
* et comme ça on ne prend pas la derniere phrase qui indique le nombre d'appareils trouvés */
if(count($mots)>=5){
$nom = $tableau[1];
/* Verification du type de l'appareil */
$type = "";
include(getcwd().'/type_appareil.php');
if($type!=""){
$Types[$nb] = $type;
$Devices[$nb] = $nom;
$Adresses[$nb] = $mots[count($mots)-1];
$nb++;
}
}
$txt = substr($txt,-(strlen($txt)-$i)); /* On enlève la phrase que l'on vient d'afficher au texte de base pour afficher d'autres phrases */
unset($phrase);
}
/* Affichage sous forme de tableau */
echo "<form method='post' id='formulaire' action='main.php'>";
echo "<table class='table table-striped'>";
echo "<thead>";
echo "<tr>";
echo "<th>Choix</th>";
echo "<th>Nom de l'appareil</th>";
echo "<th>Type d'appareil</th>";
echo "<th>Adresse IP</th>";
echo "</tr>";
echo "</thead>";
echo "<tbody>";
for($i=0;$i<=$nb-1;$i++){ /* On affiche tous les appareils trouvés en enlevant la derniere ligne qui correspond au nombre d'appareils trouvés */
$infos = $Devices[$i].'$'.$Types[$i].'$'.$Adresses[$i];
echo "<td><input type='checkbox' name='App[]' id='check' class='form-check-input' value='$infos'></td>";
echo "<td>".$Devices[$i]."</td>";
echo "<td>".$Types[$i]."</td>";
echo "<td>".$Adresses[$i]."</td>";
echo "</tr>";
}
echo "</tbody>";
echo "</table>";
/* Bouton d'envoi des donnees de l'appareil choisi */
echo "<input type='button' id='bouton' value=\"Utiliser l'appareil\" class='btn btn-primary' pointer-events='none' onclick='count_chkBox();'>";
echo '<br/><p id="text-load" style="display:none">Erreur, veuillez selectionner au moins un appareil à utiliser !</p>';
echo "</form>";
}
?>
<!-- TODO : Verifier si EventListener fonctionne pour plusieurs appareils en meme temps -->
<script type="text/javascript">
var checkbox = document.getElementById("check");
var chk_El = document.getElementsByName("App[]");
var display_txt = document.getElementById("text-load");
var elem = document.getElementById("formulaire");
checkbox.addEventListener('change',e=>{
if(e.target.checked){
display_txt.style = "display:none";
}
});
function count_chkBox(){
var nb_check = 0;
for(var i=0;i<chk_El.length;i++){
if(chk_El[i].checked){
nb_check++;
}
}
if(nb_check==0){
display_txt.style = "color:red";
}else{
elem.submit();
}
}
</script>
</body>
</html>