2013-03-08 2 views
3

J'utilise le code suivant pour obtenir l'ID MAC dans Qt.Obtenir l'ID MAC dans Qt

main.cpp

#include <QtCore/QCoreApplication> 
#include "QtNetwork/QNetworkInterface" 
#include "QString" 

QString getMacAddress() 
{ 
    foreach(QNetworkInterface interface, QNetworkInterface::allInterfaces()) 
    { 
     // Return only the first non-loopback MAC Address 
     if (!(interface.flags() & QNetworkInterface::IsLoopBack)) 
      return interface.hardwareAddress(); 
     QString text = interface.hardwareAddress(); 
     qDebug() << text; 
    } 
    return QString(); 
} 

int main(int argc, char *argv[]) 
{ 
    getMacAddress(); 
    QCoreApplication a(argc, argv); 
    return a.exec(); 
} 

Je reçois rien dans la console? Guidez-moi ... merci

+0

Avez-vous inclus + = 'CONFIG console' dans votre .pro? – zzk

+0

@zzk Ouais, je l'ai fait, FYI est ici ma source de projet: 'QT + = noyau QT + = réseau QT - = IUG target = qmacid CONFIG + = console CONFIG - = app_bundle TEMPLATE = app SOURCES + = main.cpp 'Je présume qu'il y a un problème dans la fonction ** getMacAddress() **. – highlander141

+0

huh..'return interface.hardwareAddress(); 'donc peut-être qu'il y retourne sans rien imprimer. – zzk

Répondre

2

Try ce code afin de montrer les adresses matérielles de chaque interface:

QString getMacAddress() 
{ 
    QString text; 
    foreach(QNetworkInterface interface, QNetworkInterface::allInterfaces()) 
    { 
     text += "Interface:"+interface.hardwareAddress()+"\n"; 
    } 
    return text; 
} 

int main(int argc, char *argv[]) 
{ 
    QCoreApplication a(argc, argv); 
    printf("%s\n", getMacAddress().toAscii().constData()); 
    exit(1); 
    return a.exec(); 
} 
+1

note: pour passer QString comme 'const char *' utiliser 'qPrintable (chaîne)' –

Questions connexes