Seite 1 von 1
Frage~~~~~~~~~ unter Linux QT4
Verfasst: 21. August 2006 10:55
von Hass
Hallo zusammen,
eine Frage habe ich.
Wo ist QHostAddress, wenn sie unter Linux zu nutzen ist?
Flogend , unter Linux:
.....
QHostInfo info;
if ( !info.addresses().isEmpty() ) // Return empty!!!!!! Warum? Why?
info.addresses().first().toString();
......
Verfasst: 21. August 2006 13:38
von heikob
Hallo,
also in der Doku habe ich unter QHostInfo die Funktion
QList<QHostAddress> QHostInfo::addresses () const
gefunden. Dabei ist auch ein Beispielcode, den ich jetzt aber auf die Schnelle nicht ausprobiert habe. Aber vielleicht hilft dir das ja schon weiter.
Verfasst: 22. August 2006 04:42
von Hass
heikob hat geschrieben:Hallo,
also in der Doku habe ich unter QHostInfo die Funktion
QList<QHostAddress> QHostInfo::addresses () const
gefunden. Dabei ist auch ein Beispielcode, den ich jetzt aber auf die Schnelle nicht ausprobiert habe. Aber vielleicht hilft dir das ja schon weiter.
Danke schoen. Aber muss das Problem sofort geloest werden. Hilfen Sie mir bald.~~~~~~~~~~

Verfasst: 22. August 2006 23:32
von heikob
So, jetzt aber. Die Doku ist hier etwas missverständlich. Die Lösung ist, wie bereits vermutet in QHostInfo zu finden.
Mit folgendem Code kannst du deine eigene IP auslesen.
Code: Alles auswählen
QHostInfo::lookupHost(QHostInfo::localHostName (),this, SLOT(lookedUp(QHostInfo)));
Im enstprechenden Slot lookedUp(QHostInfo) kannst du dann, wie in der Doku beschrieben, deine IPs auslesen.
Code: Alles auswählen
void CoreClient::lookedUp(const QHostInfo &host)
{
if (host.error() != QHostInfo::NoError) {
qDebug() << "Lookup failed:" << host.errorString();
return;
}
foreach (QHostAddress address, host.addresses())
qDebug() << "Found address:" << address.toString();
}
Da ich nur eine Netzwerkkarte und damit eine IP habe, kam bei mir nur eine IP als Ergebnis, aber ich denke, das solte mit mehreren IPs auch funktionieren.
Verfasst: 23. August 2006 03:24
von Hass
heikob hat geschrieben:So, jetzt aber. Die Doku ist hier etwas missverständlich. Die Lösung ist, wie bereits vermutet in QHostInfo zu finden.
Mit folgendem Code kannst du deine eigene IP auslesen.
Code: Alles auswählen
QHostInfo::lookupHost(QHostInfo::localHostName (),this, SLOT(lookedUp(QHostInfo)));
Im enstprechenden Slot lookedUp(QHostInfo) kannst du dann, wie in der Doku beschrieben, deine IPs auslesen.
Code: Alles auswählen
void CoreClient::lookedUp(const QHostInfo &host)
{
if (host.error() != QHostInfo::NoError) {
qDebug() << "Lookup failed:" << host.errorString();
return;
}
foreach (QHostAddress address, host.addresses())
qDebug() << "Found address:" << address.toString();
}
Da ich nur eine Netzwerkkarte und damit eine IP habe, kam bei mir nur eine IP als Ergebnis, aber ich denke, das solte mit mehreren IPs auch funktionieren.
Es wäre schön, wenn du die Überschrift von deinem ersten Beitrag dahingehend ändern könntest, dass ihn auch andere Leute mit dem gleichen Problem erkennen können. Etwa in
[gelöst] Eigene IP-Adresse abfragen
Danke ,Danke~~~~
I will try them.
Verfasst: 23. August 2006 05:26
von Hass
heikob hat geschrieben:So, jetzt aber. Die Doku ist hier etwas missverständlich. Die Lösung ist, wie bereits vermutet in QHostInfo zu finden.
Mit folgendem Code kannst du deine eigene IP auslesen.
Code: Alles auswählen
QHostInfo::lookupHost(QHostInfo::localHostName (),this, SLOT(lookedUp(QHostInfo)));
Im enstprechenden Slot lookedUp(QHostInfo) kannst du dann, wie in der Doku beschrieben, deine IPs auslesen.
Code: Alles auswählen
void CoreClient::lookedUp(const QHostInfo &host)
{
if (host.error() != QHostInfo::NoError) {
qDebug() << "Lookup failed:" << host.errorString();
return;
}
foreach (QHostAddress address, host.addresses())
qDebug() << "Found address:" << address.toString();
}
Da ich nur eine Netzwerkkarte und damit eine IP habe, kam bei mir nur eine IP als Ergebnis, aber ich denke, das solte mit mehreren IPs auch funktionieren.
Es wäre schön, wenn du die Überschrift von deinem ersten Beitrag dahingehend ändern könntest, dass ihn auch andere Leute mit dem gleichen Problem erkennen können. Etwa in
[gelöst] Eigene IP-Adresse abfragen
Danke dir für deine Hilfen.Ich verstehe!
Aber, aber Sie verstehen sich nicht was ich eigentlich möchte~~~~Shade~~~~~
Ich möchte IPadressen bekommen, die im Innernetzwerk (internal network)sind!~~~~~~Z.B.192.,168.0.106(meinLinux PC).
Mit deinen Code bekomme ich nur "localhost" oder "127.0.0.1" zurück.
Unter windows!Flogen sind OK~~~~
if ( !info.addresses().isEmpty() )
info.addresses().first().toString();
Jedoch ......unter Linux.......nicht alles................

Verfasst: 23. August 2006 10:07
von heikob
Achso, jetzt glaube ich dich zu verstehen. Also du möchtest alle Rechner im lokalen Netzwerk finden. Dabei funktioniert es mit Windows.Rechnern, aber nicht zuverlässig mit Linux Rechnern? Ich vermute, bitte korrigiert mich wenn ich mich irre, dass es daran liegt, dass sich ein Linux-Rechner nicht standardmäßig im Netzwerk bekannt macht. Hier hilft vermutlich nur ein Broadcast oder ähnliches. Allerdings bin ich da jetzt etwas überfragt.
Sorry
Verfasst: 23. August 2006 10:30
von Hass
heikob hat geschrieben:Achso, jetzt glaube ich dich zu verstehen. Also du möchtest alle Rechner im lokalen Netzwerk finden. Dabei funktioniert es mit Windows.Rechnern, aber nicht zuverlässig mit Linux Rechnern? Ich vermute, bitte korrigiert mich wenn ich mich irre, dass es daran liegt, dass sich ein Linux-Rechner nicht standardmäßig im Netzwerk bekannt macht. Hier hilft vermutlich nur ein Broadcast oder ähnliches. Allerdings bin ich da jetzt etwas überfragt.
Sorry
Nicht zu sorry.
Das ist genau zu helfen.
Ich denke, daß ich mit Funktionen des Linux-Systems nutzen kann.
Es gebt viele wichtige Funktionen vom Netzwerk. Dabei gebt es Hilfen, vielleicht, vielleicht.........