Qt获取IP地址,子网掩码,网关地址

Qt获取操作系统网络信息挺尴尬的,使用自带的QNetworkInterface不光层级众多,而且很难获取Gateway网关,网上有使用第三方库IPHlpApi获取网关的方法,无疑又会增加复杂度。
这里简单的使用cmd命令+正则匹配来获取,利用Windows提供的ipconfig或者Linux提供的ifconfig等命令迅速获取相关信息:

QString Utils::GetIP(){
    QString ip = "";
    QProcess cmd_pro ;
    QString cmd_str = QString("ipconfig");
    cmd_pro.start("cmd.exe", QStringList() << "/c" << cmd_str);
    cmd_pro.waitForStarted();
    cmd_pro.waitForFinished();
    QString result = cmd_pro.readAll();
    QString pattern("[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}");
    QRegExp rx(pattern);

    int pos = 0, count = 0;
    while((pos = rx.indexIn(result, pos)) != -1){
        ip += rx.cap(0) + ",";
        count++;
        if(count == 3)
            break;
        pos += rx.matchedLength();
    }
    return ip;
}

这两年外企在国内确实走下坡路了,对国内公司的竞争力越来越低,因为国内公司效率更高(更敢加班),更有狼性,而外企普遍更温和,更守法(劳动法),因此在竞争中反应就慢,成本就更高,但对我等普通劳动这来说,这确是生活之殇。
8小时工作制是无数劳动前辈经过不懈斗争获得的,也被实践证明是社会良性运转的有效机制,但在现在却被冠以奋斗、狼性的口号而践踏,最终导致劣币驱逐良币,真是长叹一声…

丁丁生于 1987.07.01 ,30岁,英文ID:newflydd

  • 现居住地 江苏 ● 泰州 ● 姜堰
  • 创建了 Jblog 开源博客系统
  • 坚持十余年的 独立博客 作者
  • 大学本科毕业后就职于 中国电信江苏泰州分公司,前两年从事Oracle数据库DBA工作,两年后公司精简技术人员,被安排到农村担任支局长(其本质是搞销售),于2016年因志向不合从国企辞职,在小城镇找了一份程序员的工作。
  • Git OSChina 上积极参与开源社区