Bonjour à tous,
Je dois pour un projet de stage récupérer la table ARP d'un routeur de mon entreprise, via le protocole SNMP.
Jusque là aucun soucis, les fonctions marchent parfaitement, l'affichage est bon aussi à part pour une chose...
Un exemple vaut mieux qu'un long discours alors voici ce que m'affiche le résultat de mon code :
Les adresses IP sont bonnes, les adresses MAC le sont presque quant à elles.IP MAC
31.10.19.23 STRING: 0:0:48:3F:ED:E9
172.16.0.28 STRING: 0:0:50:14:8A:9E
31.10.64.1 STRING: 0:0:5E:0:1:10
.... ....
Là où il devrait y avoir deux "0" de suite il n'y en a qu'un seul, et lorsqu'un chiffre est tout seul, cela signifie qu'il devrait y avoir un "0" devant.
Ainsi la 3ème ligne devrait donc avoir pour adresse mac "00:00:5E:00:01:10".
Mon problème est de savoir pourquoi mon code affiche les adresses mac sous cette forme et pas dans la forme "normale".
Voici le code avec lequel j'obtiens mon tableau :
Merci de votre aide.
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 // SNMP SUR ROUTEUR POUR RECUPERER LA TABLE ARP snmp_set_oid_output_format(SNMP_OID_OUTPUT_NUMERIC); $OID = '.1.3.6.1.2.1.4.22.1.2'; $X = snmprealwalk('20.12.10.1', 'public', $OID); foreach($X as $key => $value) { $IP = substr($key, strlen($OID)+1); $Y[$IP]=$value; } unset($X); asort($Y); echo '<table border="1"> <th> IP </th> <th> MAC </th> '; foreach($Y as $key => $value) { echo '<tr> <td> ' . substr($key, 5) . ' </td> <td> ' . strtoupper($value) . ' </td> </tr>'; }
Partager