Anzeige:
Ergebnis 1 bis 5 von 5

Thema: QDns Problem

  1. #1
    Registrierter Benutzer
    Registriert seit
    04.05.2003
    Beiträge
    12

    Question QDns Problem

    Würde gerne eine IP in dessen Namen umwandeln und umgekehrt. Hat mir da jemand einen funktionierenden Quellcode?
    Visit: SecureCrew.net
    UNIX/Linux -Security, Coding and more...

  2. #2
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Folgendes ist die Datei qdnstest.cpp

    Code:
    #include <qapplication.h>
    #include <qdns.h>
    #include <qhostaddress.h>
    #include <qstringlist.h>
    
    class DNS : QObject
    {
        Q_OBJECT
    public:
        DNS() : m_dns(0), m_mode(0) {
            startNameToAddress();
        }
    
    
    protected:
        void startNameToAddress() {
            qDebug("lookup of localhost");
            m_dns = new QDns("localhost");
            QObject::connect(m_dns, SIGNAL(resultsReady()), this,
    SLOT(ready()));
            m_mode = 0;
        }
    
        void startAddressToName() {
            qDebug("lookup of 127.0.0.1");
            QHostAddress addr;
            addr.setAddress("127.0.0.1");
            m_dns = new QDns(addr);
            QObject::connect(m_dns, SIGNAL(resultsReady()), this,
    SLOT(ready()));
            m_mode = 1;
        }
    
    protected slots:
        void ready() {
            if (m_mode == 0)
            {
                QValueList<QHostAddress> list = m_dns->addresses();
                for (uint i = 0; i < list.count(); ++i)
                {
                    qDebug("Address %d: %s", (i+1),
                           (const char*) list[i].toString());
                }
    
                delete m_dns;
                startAddressToName();
            }
            else
            {
                QStringList list = m_dns->hostNames();
                for (uint i = 0; i < list.count(); ++i)
                {
                    qDebug("Hostname %d: %s", (i+1),
                           (const char*) list[i]);
                }
    
                delete m_dns;
                qApp->quit();
            }
        }
    
    protected:
        QDns* m_dns;
        int m_mode;
    };
    
    int main(int argc, char** args)
    {
        QApplication app(argc, args);
    
        DNS dns;
    
        return app.exec();
    }
    
    #include "qdnstest.moc"
    #> moc -o qdnstest.moc qdnstest.cpp

    #> g++ -Wall -o qdnstest qdnstest.cpp -lqt-mt -L$QTDIR/lib -I$QTDIR/include

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  3. #3
    Registrierter Benutzer
    Registriert seit
    04.05.2003
    Beiträge
    12
    Danke für den Quellcode. Nur leider funktioniert er nicht ganz korrekt. Die Ausgabe sieht folgendermassen aus:

    lookup of localhost
    Address 1: 127.0.0.1
    lookup of 127.0.0.1
    Segmentation fault
    Visit: SecureCrew.net
    UNIX/Linux -Security, Coding and more...

  4. #4
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    hmm, funkt bei mir einwandfrei

    Ich attache mal meine Datei.
    Die .txt Endung weglöschen

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  5. #5
    Registrierter Benutzer
    Registriert seit
    04.05.2003
    Beiträge
    12
    Hm tritt wieder auf der Fehler. Muss wohl an meinem System liegen. Trotzdem danke für die Hilfe.
    Visit: SecureCrew.net
    UNIX/Linux -Security, Coding and more...

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •