Salut
je voudrai savoir comment on peut récuper l'adresse mac d'un poste sur linux ????
Merci d'avance
Salut
je voudrai savoir comment on peut récuper l'adresse mac d'un poste sur linux ????
Merci d'avance
si tu utilise la lib PCAP tu peux utiliser les oid request:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 PACKET_OID_DATA *poidd; char buf[16]; poidd=(PACKET_OID_DATA *)buf; poidd->Oid=OID_802_3_PERMANENT_ADDRESS; poidd->Length=6; PacketRequest(adapter, false, (PACKET_OID_DATA *)poidd); cout << "|Adresse MAC:\t| "; for(int i=0;i<6;i++){cout << setbase(16) << setfill('0') << setw(2) << static_cast<int>(poidd->Data[i]);if (i!=5)cout << ":";}
Pour Linux spécifiquement
http://www.linuxquestions.org/questi...003/03/3/38217
Google is your friend...
A déplacer dans le forum Linux
je viens d'installer la librairie PCAP et inclu pcap.h mais lors de la compilation j'ai les message suivants :
et voici mon code :test.cpp:8: error: `PACKET_OID_DATA' undeclared (first use this function)
test.cpp:8: error: (Each undeclared identifier is reported only once for each
function it appears in.)
test.cpp:8: error: `poidd' undeclared (first use this function)
test.cpp:10: error: parse error before `)' token
test.cpp:11: error: `OID_802_3_PERMANENT_ADDRESS' undeclared (first use this
function)
test.cpp:13: error: `adapter' undeclared (first use this function)
test.cpp:13: error: parse error before `)' token
test.cpp:15: error: `cout' undeclared (first use this function)
test.cpp:18: error: `setbase' undeclared (first use this function)
test.cpp:18: error: `setfill' undeclared (first use this function)
test.cpp:18: error: `setw' undeclared (first use this function)y a t'il une libraire particulière a inclure ????? ou bien ai-je fais une erreur ds mon code ???
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 #include <iostream> #include <stdio.h> #include <pcap.h> #include <iomanip> int main(int argc, char *argv[]) { PACKET_OID_DATA *poidd; char buf[16]; poidd=(PACKET_OID_DATA *)buf; poidd->Oid=OID_802_3_PERMANENT_ADDRESS; poidd->Length=6; PacketRequest(adapter, false, (PACKET_OID_DATA *)poidd); cout << "|Adresse MAC:\t| "; for(int i=0;i<6;i++) { cout << setbase(16) << setfill('0') << setw(2) << static_cast<int>(poidd->Data[i]); if (i!=5) { cout << ":"; } } }
sous windows avec winpcap il faut inclure la lib je pense que sous linux ca doit etre pareil...
et il faut evidement initialiser PCAP et l adapter...
et de plus sous winpcap les entete et lib a inclure sont :
pour initialiser l adapteur il y a un code a peu pres standard disponible sur le site officiel et sur internet....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 #include "Include\packet32.h" #include "Include\ntddndis.h" #pragma comment(lib, "lib\Packetb.lib") //Packet.lib convertit pour borland
et pour les autres erreurs il faut inclure:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 #include <iomanip> #include <iostream>
désoler mais cela ne fonctionne pas et de plus j'ai deja inclue "iostream" et "iomanip". bon je vais essayer de me débrouiller autrement !!!
Qu'est-ce qui te déplais dans la solution du lien que je t'ai soumis ?
Un simple copier/coller devrait résoudre ton problème.
Moi je me sers de Packet.dll de chez winpcap. Ca marche au beurre, je snif le réseau, je capture les trames ARP contenant la résolution d' adresse Mac en adresse IP, le problème, quand mon appli ce fini windows 98 n'a plus de réseau, si quelqu'un a la solution , merci bien.
Partager