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
  • 相关阅读:
    Docker入门(windows版),利用Docker创建一个Hello World的web项目
    SpringBoot集成JWT实现token验证
    Jedis的基本操作
    Java动态代理详解
    SpringBoot利用自定义注解实现通用的JWT校验方案
    递归——汉诺塔问题(python实现)
    Datatable删除行的Delete和Remove方法的区别
    C# DEV使用心得
    总结
    安装插件时
  • 原文地址:https://www.cnblogs.com/mylinux/p/6061237.html
Copyright © 2011-2022 走看看