Bienvenue sur le forum !

Si vous souhaitez rejoindre la communauté, cliquez sur l'un de ces boutons !

Qt 5 : 5.8.0 - Qt Creator : 4.2.2 - Qt Installer : 2.0.3 - JOM : 1.1.2 - Qt Build suite : 1.7.0 - VS Qt 5 : 2.0.0

Acceder à l'adrese ipv4

Bonjour,

Tjs en developpement d'une appli Mac / Windows.....je me retrouve face à un nouveau problème : les adresses IpV4/6...

Je m'explique...j'ai une adresse Mac de ma carte réseau dont je veux connaitre l'ip

Je scanne les interface reseaux de mon computer pour glanner les adresses ip de celui ci....
QList<QNetworkInterface> niList = QNetworkInterface::allInterfaces ();

for (int ii = 0 ; ii < niList.count() && !bFound ; ii ++)
{
ni = niList.at(ii);
naeList = ni.addressEntries();
for (int jj = 0 ; jj < naeList.count() && !bFound; jj ++)
{
nae = naeList.at(jj);
czReport.sprintf("jj = %d et alors nae.ip() = %s et nae.netmask = %s",jj,qPrintable(nae.ip().toString()),qPrintable(nae.netmask().toString()));
ui.m_CtrlListWidgetReport->addItem(czReport);
}
}
en résumé....mais sur mon Mac qui marche en Ipv6....que des adreses ipv6 en sortie alors que moi je veux les ipv4...

et si je tente un nae.ip().toIPv4Address() forcément il me donne 0...

Seulement dans les panneau système de mon Mac mon controleur ethernet a bien les 2 adresses de renseignées....

Du coup j'ai tenté une autre approche....
for  (int ii = 0 ; ii < niList.count() && !bFound ; ii ++)
{
ni = niList.at(ii);
naeList = ni.addressEntries();
niaddrlist.clear();
niaddrlist = ni.allAddresses();

for (int jj = 0 ; jj < niaddrlist.count() ; jj++)
{
czReport.sprintf("niaddrlist(%d) = %s",jj,qPrintable(niaddrlist.at(jj).toString()));
ui.m_CtrlListWidgetReport->addItem(czReport);
}
}
et là j'obtiens

1- 0.0.0.0.0.0.0.0.1
2- FE80.1.0.0.0.0.0.1
3- 127.0.0.1
4- FE80.4.0.0.20D.93FF.FEC5.60AC
5- 169.254.95.204
6- 192.168.2.1

4 étant l'ipv6 de 5...mais bon comment être sur que c'est toujours dans cet ordre.... :s

..du coup je vais chercher un moyen de remonter depuis l'adresse ip à l'adresse Mac....mais bon...si qq'un a une idée...ça m'arrangerait ;)

Réponses

  • Boulet que je suis...l'adresse ipv4 est donnée à la suite de l'ipv6 dans les addressEntries()....
    Vraiment boulet.....
Connectez-vous ou Inscrivez-vous pour répondre.