Bonjour
J'ai un programme php qui m'affiche des traps snmp dans un fichier à chaque fois que ma machine en reçoit une.
Je veux extraire des informations de ces traps en particulier le SSID et le RSSI.
voiçi un exemple de traps reçu, j'ai mis le SSID et le RSSI en gras :
New trap received : 31-07-2007 - 16:15
Host : 192.168.X.X
Ip : UDP: [192.168.X.X]:1029
TRAP: SNMPv2-SMI::zeroDotZero.0 "802.11g: Ad-hoc network detected: BSSID 00-13-02-cd-83-56, SSID test_zak, channel 11 (2462 MHz), RSSI 36"
et voilà mon programme :
Je ne sais pas qu'elle fonction utiliser...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 function ask($prompt = '') { if (!empty($prompt)) { fwrite(STDOUT, $prompt); } return trim(fgets(STDIN)); } //On met les donées de la trap dans un tableau $host = ask('Host : '); $ip = ask('Ip : '); $vars = array(); while (!feof(STDIN)) { array_push($vars, trim(fgets(STDIN))); } // On ouvre le fichier "affichetraps" en écriture seulement avec ajout du contenu à la fin $fp = fopen(TRAP_FILE, 'a'); $date = date("d-m-Y"); $heure = date("H:i"); // parcourir le tableau et stocker le contenu dans la variable $v foreach ($vars as $v) { //afficher le contenu des traps qui concernent la détéction d'ad hoc seulement if (ereg('Ad-hoc network detected',$v)) { fwrite($fp, 'New trap received : '.$date . " - " . $heure . PHP_EOL); fwrite($fp, 'Host : '.$host . PHP_EOL); fwrite($fp, 'Ip : '.$ip . PHP_EOL); fwrite($fp, 'TRAP: ' . $v . PHP_EOL); fwrite($fp, PHP_EOL . '----------' . PHP_EOL); } } fclose($fp);
j'ai essayé ceci
mais ça me donne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $i = RSSI; $rssi = strrchr($v, $i); echo "$rssi";
RSSI 36"
mais moi je ne veux afficher juste que le nombre dans la variable.
voilà j'espère que quelqu'un a une idée
Merci
Cordialement
Partager