21int main(
int argc,
char *argv[])
24 QCoreApplication app(argc, argv);
27 if (!QNetworkInformation::loadDefaultBackend()) {
28 qWarning() <<
"Failed to load QNetworkInformation backend. Exiting.";
32 QNetworkInformation *networkInfo = QNetworkInformation::instance();
35 QString targetIpStr = argc > 1 ? argv[1] :
"8.8.8.8";
36 QHostAddress targetIp(targetIpStr);
38 if (targetIp.isNull()) {
39 qWarning() <<
"Invalid IP address:" << targetIpStr;
44 QNetworkInformation::Reachability requiredReachability =
45 isLocalAddress(targetIp)
46 ? QNetworkInformation::Reachability::Local
47 : QNetworkInformation::Reachability::Online;
50 QNetworkInformation::Reachability currentReachability = networkInfo->reachability();
52 qDebug() <<
"Target IP:" << targetIp.toString();
53 qDebug() <<
"Target is considered"
54 << (isLocalAddress(targetIp) ?
"local/site." :
"external/online.");
55 qDebug() <<
"Required reachability level:" << requiredReachability;
56 qDebug() <<
"Current reachability:" << currentReachability;
58 if (currentReachability < requiredReachability) {
59 qWarning() <<
"Current network state may not allow reaching the target address.";
61 qDebug() <<
"Target may be reachable based on current network state.";