Meine Anwendung verbindet sich mit einem TCP-Server. Ich möchte, dass es sich bewusst ist, dass es auf dem gleichen Host wie die Server-App läuft, so dass es den Serverprozess eventuell direkt hochfahren kann, wenn es nicht läuft.Qt feststellen, ob der angegebene Hostname auf localhost zeigt
Da der Server eine Schnittstelle überwacht und die Anwendung einen Hostnamen auflöst, um eine Verbindung zum Server herzustellen, ist es für mich nicht so offensichtlich festzustellen, ob der konfigurierte Hostname zum Verbinden des Servers mit demselben Host wie der Server verweist .
würde ich so etwas wie dies mag:
bool isThisLocalHost(QString hostName) {
//resolve hostname's address
//list localhost interfaces ip or hw addresses ?
//if the hostname address matches one of the host interfaces address
//pseudo code
bool bRes = interfaces_addresses_list.contains(hostname_address);
return bRes;
}
ich eigentlich zu erreichen dies mit QNetworkInterface versucht, QNetworkAddressEntry, QHostInfo, QHostAddress.
Vielleicht gibt es einen einfachen Weg?
Es ist nicht ausreichend, um zu überprüfen, ob es ein localhost (127.x.x.x) ist, müssen Sie auch prüfen, ob es die Adresse von einem der lokalen Schnittstellen ist. –
Ja, ich denke, meine Antwort funktioniert genauso wie deine, aber auf eine blockierende Weise (was ich in meinem Anwendungsfall nicht störe). Die Frage "Wie überprüft man, ob die Netzwerkadresse in Qt lokal ist" wurde nicht angezeigt. – spacm