프로그래밍/Qt

프로그램으로 네트워크 설정 (라즈비안)

Dev-Drake 2019. 6. 11. 14:16
반응형

// 파일 권한을 내리고
chmod 777 /etc/network/interfaces

void Network_Dlg::on_BtnOk_clicked()
{
    //  네트워크 파일 수정
    QFile NetFile("/etc/network/interfaces");

    if(NetFile.open(QIODevice::ReadWrite | QIODevice::Text))    {
        QString Data;

        Data.sprintf("auto lo\r\n"
                     "iface lo inet loopback\r\n"
                     "\r\n"
                     "auto eth0\r\n"
                     "allow-hotplug eth0\r\n"
                     "iface eth0 inet static\r\n"
                     "address %s\r\n"
                     "netmask %s\r\n"
                     "gateway %s\r\n"
                     "\r\n"
                     "\r\n"
                     "auto wlan0\r\n"
                     "allow-hotplug wlan0\r\n"
                     "iface wlan0 inet manual\r\n"
                     "wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf\r\n"
                     "\r\n"
                     "auto wlan1\r\n"
                     "allow-hotplug wlan1\r\n"
                     "iface wlan1 inet manual\r\n"
                     "wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf\r\n"
                     , ui->EdtIp->text().toStdString().c_str()
                     , ui->EdtNetmask->text().toStdString().c_str()
                     , ui->EdtGateway->text().toStdString().c_str());

        NetFile.write(Data.toStdString().c_str(), Data.length());
        NetFile.close();
    }

    //  네트워크 재 가동
    QProcess *pro = new QProcess;
    QStringList args;

    args << "-c" << "sudo /etc/init.d/networking restart";
    pro->start("/bin/sh", args);
    pro->waitForFinished();

    this->close();
}

 

반응형