Ip local avec winpcap? [Résolu]

Signaler
Messages postés
258
Date d'inscription
samedi 25 décembre 2004
Statut
Membre
Dernière intervention
13 novembre 2012
-
Messages postés
258
Date d'inscription
samedi 25 décembre 2004
Statut
Membre
Dernière intervention
13 novembre 2012
-
Bonjours,
Je suis en train de me familiariser avec winpcap. Une question m'est venu en tête, est-il possible d'obtenir l'ip local d'un device choisis?

 pcap_if_t * d;
... je trouve le device voulue.

Ensuite une des propriétés du device est d->addresses qui retourne le type pcap_addr *.
Ensuite une des propriétés du pcap_addr * est ->addr qui retourne sockaddr.

Et voila, je me retrouve avec un type sockaddr. Y a t'il moyen d'obtenir l'ip avec ce type?

Merci pour toute forme d'aide.

Ps: j'ai vu beaucoup de source trouvant le ip grace à sockaddr_in ... mais aucune avec sockaddr.

-Jn-

1 réponse

Messages postés
258
Date d'inscription
samedi 25 décembre 2004
Statut
Membre
Dernière intervention
13 novembre 2012

Bon alors j'ai trouvé.

Pour ceux qui cherche toujours, voici la solution puisqu'il est assez dur de trouver de l'information sur le sujet.

Déclaration
pcap_if_t* d;
pcap_addr* addr;
sockaddr *ipaddr;
char* adresse;

Vous trouvez ensuite le device voulu à l'aide de pcap_findalldevs_ex() et vous l'insérer dans la variable d.
Code
addr = d->addresses;
ipaddr = addr->addr;
struct sockaddr_in *sin = (struct sockaddr_in *)ipaddr; //on cast la variable sockaddr en sockaddr_in

adresse = inet_ntoa(sin->sin_addr);
std::cout << std::endl << "Adresse IP : " << adresse << std::endl << std::endl;

voila!
-Jn-