Bug #3721
Champ Adresse IP windows
100%
Description
On a perdu le champ adresse IP sur les windows...
Historique
#1 Mis à jour par Icham Sirat il y a plus de 10 ans
- Petite mise à jour du problème sur windows :
- le paquet installable affiche la version et le numéro de build dans les infos mais pas l'IP
- le code dans Qt sur windows affiche l'IP mais pas les infos de build (normal)
#2 Mis à jour par Icham Sirat il y a plus de 10 ans
- % réalisé changé de 0 à 30
Je viens de comparer les retours aux branches ad-hoc lorsqu'on build des branche RC :
on est sur une branche STABLE ou RC, on essaye de revenir à toutes les revisions ad hoc des branches externes M abuledulomv1.cpp M abuledulomv1.h M normal/abuleduapplicationv1.cpp M normal/abuleduapplicationv1.h M abuledussologinv1.cpp M lang/abuledunetworkaccessmanagerv1_en.ts M lang/abuledunetworkaccessmanagerv1_es.ts
Je connais les révisions (seulement n-1 sur les fichiers impactés) et ça ne touche pas l'affichage des IP..
#3 Mis à jour par Icham Sirat il y a plus de 10 ans
Je viens de compiler sur Windows en debug & release et je vois l'IP...
Je rajoute un debug+log de l'Ip locale dans le code (revno 616) et je rebuilde un paquet.
#4 Mis à jour par Icham Sirat il y a plus de 10 ans
Bon sur windows, toujours une petite incompréhension...
Le code compilé affiche l'IP et pas l'exécutable installé non..
Je vais tracer toute la boucle de recherche d'adresse IP (méthode showParam()) et rebuild du paquet pour windows.
#5 Mis à jour par Icham Sirat il y a plus de 10 ans
Aie petit bug Qt trouvé ici https://bugreports.qt-project.org/browse/QTBUG-21570
Comme on boucle sur les configurations trouvées, sur Windows 7 la méthode QNetworkConfigurationManager::allConfigurations() retourne 0 (cf bug).
Mais il est peut-être possible de passer par les interfaces détectées et non par les configurations réseau -> Test en cours
#6 Mis à jour par Icham Sirat il y a plus de 10 ans
Voici la plus simple méthode pour avoir l'IP locale :
foreach (const QHostAddress &address, QNetworkInterface::allAddresses()) { if (address.protocol() == QAbstractSocket::IPv4Protocol && address != QHostAddress(QHostAddress::LocalHost)) qDebug() << address.toString(); }
Fonctionne sous Linux et Windows en développement.
Intégration de ce bout de code dans aLaCarte et build du paquet pour test.
Ce code est fonctionnel mais je perds des infos. Il faut que je trouve une manière aussi simple d'avoir le masque de sous-réseau + adresse MAC.
example : xxx.xxx.xxx.xx (masque : xxx.xxx.xxx.x, adresse MAC :xx:xx:xx:xx:xx:xx)
#7 Mis à jour par Icham Sirat il y a plus de 10 ans
- % réalisé changé de 30 à 50
Voilà pour l'adresse MAC (attention, ne retourne que la première non loop-back trouvée :
foreach(const QNetworkInterface &netInterface, QNetworkInterface::allInterfaces()) { // Return only the first non-loopback MAC Address if (!(netInterface.flags() & QNetworkInterface::IsLoopBack)){ qDebug() << netInterface.hardwareAddress(); } }
#8 Mis à jour par Icham Sirat il y a plus de 10 ans
Hey encore plus simple, les trois d'un coup :
foreach(const QNetworkInterface &netInterface, QNetworkInterface::allInterfaces()) { foreach (const QNetworkAddressEntry &addrEntry, netInterface.addressEntries()) { if(addrEntry.ip().protocol() == QAbstractSocket::IPv4Protocol && addrEntry.ip() != QHostAddress(QHostAddress::LocalHost) ){ qDebug() << "ADRESSE IP" << addrEntry.ip().toString(); qDebug() << "NETMASK ASSOCIE" << addrEntry.netmask().toString(); } } // Return only the first non-loopback MAC Address if (!(netInterface.flags() & QNetworkInterface::IsLoopBack)){ qDebug() << "ADRESSE MAC" << netInterface.hardwareAddress(); } }
Je pense faire une structure type AbulEduNetWorkInfo avec un triplet IP,Subnet, MAC, et sûrement déplacer ça dans AbulEduApplication. -> Feature #3723
#9 Mis à jour par Icham Sirat il y a plus de 10 ans
- % réalisé changé de 50 à 80
Compilation d'un paquet (only windows) suite à la feature #3723
#10 Mis à jour par Icham Sirat il y a plus de 10 ans
- Statut changé de Assigned - En cours à Fixed - Corrigé - Implémenté
- % réalisé changé de 80 à 100
Problème réglé =)
revno 618