zoukankan      html  css  js  c++  java
  • shell检测interface是否已分配ip,qt调用shell脚本

    #include <QCoreApplication>
    #include <QDebug>
    #include <QTextStream>
    #include <QDir>
    #include <QFile>
    #include <QList>
    #include <QThread>
    #include <QtNetwork/QNetworkConfigurationManager>
    #include <QtNetwork/QNetworkConfiguration>
    #include <QtNetwork/QNetworkInterface>
    #define ETH_IF_NAME   "eth0"
    #define ETH_IF_PPP0   "ppp0"
    #define ETH_IF_PPP1   "ppp1"
    #define ETH_IF_ETH1   "eth1"
    #define ETH_IF_USB0   "usb0"
    #define ETH_NAME_SERVER     "nameserver 127.0.0.1"

    bool have_ip(char* dev)
    {
        char cmd[200]={0};
        sprintf(cmd, "/sbin/ifconfig %s | grep "inet addr" | awk '{ print $2}' | awk -F: '{print $2}' > /tmp/ipaddr" ,dev);
        ::system("rm -rf /tmp/ipaddr");
        ::system(cmd);
        qDebug()<<"cmd:"<<cmd<<endl;

        QFile file("/tmp/ipaddr");
        if(!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
            qDebug()<<"Can't open the file!"<<endl;
        }
        QThread::msleep(100);
        QByteArray line = file.readLine();
        QString str(line);
        qDebug()<<"result:"<<str<<endl;
        if(str.length() > 4)
        {
            return true;
        } else {
            return false;
        }

    }

    其中的shell:

    #!/bin/bash
    sleep 8
    
    while [ 1 ]
    do
         ipaddr=` /sbin/ifconfig eth0 | grep "inet addr" | awk '{ print $2}' | awk -F: '{print $2}' `
         if [ ! -n "$ipaddr" ]
         then
              echo "NO IP Addr"
         fi 
            sleep 8
    done
  • 相关阅读:
    [CQOI2007]涂色
    NOI.AC NOIP模拟赛 第五场 游记
    AGC018D Tree and Hamilton Path
    AGC001E BBQ Hard
    LOJ6089 小Y的背包计数问题
    UOJ272 【清华集训2016】石家庄的工人阶级队伍比较坚强
    Gym102538A Airplane Cliques
    AT5762 Preserve Diameter
    CF1030G Linear Congruential Generator
    CF1149E Election Promises
  • 原文地址:https://www.cnblogs.com/mylinux/p/6061237.html
Copyright © 2011-2022 走看看