Ip local avec winpcap?

Résolu
jnbrunet Messages postés 258 Date d'inscription samedi 25 décembre 2004 Statut Membre Dernière intervention 13 novembre 2012 - 23 janv. 2008 à 00:03
jnbrunet Messages postés 258 Date d'inscription samedi 25 décembre 2004 Statut Membre Dernière intervention 13 novembre 2012 - 24 janv. 2008 à 00:04
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

jnbrunet Messages postés 258 Date d'inscription samedi 25 décembre 2004 Statut Membre Dernière intervention 13 novembre 2012
24 janv. 2008 à 00:04
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-
3
Rejoignez-nous