这里有如何更改 MAC 地址、ips 和 dns。 Qt creator 4.8.2 基于Qt 5.12.2 (MSVC 2015, 32 bit)
.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include<QProcess>
#include<QSettings>
#include<QString>
#include<QDebug>
#include<QFile>
#include<QVariant>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
void restartNetwork();
void setNetEnabled (bool isEnabled);
void runCMD (QString cmdlst);
void configNet(QString ip1, QString ip2, QString ip3, QString ip4, QString gateway, QString dns1, QString dns2);
private slots:
void on_pushButton_clicked();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
QSettings settings(R"(HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}\0001)", QSettings::NativeFormat);
settings.setValue("NetworkAddress", "AABBCCDDEEFF");
qDebug() << settings.value("NetworkAddress");
configNet("10.10.0.10", "192.168.0.242", "192.168.10.200", "10.20.0.30", "10.10.0.1", "190.190.223.225", "190.190.223.235");
restartNetwork();
}
void MainWindow::restartNetwork()
{
setNetEnabled (false);
setNetEnabled (true);
}
void MainWindow::setNetEnabled(bool isEnabled)
{
QString cmdlst;
if(isEnabled)
{
cmdlst = "netsh interface set interface Ethernet ENABLED";
}
else
{
cmdlst = "netsh interface set interface Ethernet DISABLED";
}
runCMD(cmdlst);
}
void MainWindow::configNet(QString ip1, QString ip2, QString ip3, QString ip4, QString gateway, QString dns1, QString dns2)
{
QString ip1CMD, ip2CMD, ip3CMD, ip4CMD, dns1CMD, dns2CMD;
if(ip1!="")
{
ip1CMD = QString("netsh interface ip set address Ethernet static %1 255.255.255.0 %2").arg(ip1).arg(gateway);
runCMD(ip1CMD);
}
if(ip2!="")
{
ip2CMD = QString("netsh interface ip add address Ethernet %1 255.255.255.0").arg(ip2);
runCMD(ip2CMD);
}
if(ip3!="")
{
ip3CMD = QString("netsh interface ip add address Ethernet %1 255.255.255.0").arg(ip3);
runCMD(ip3CMD);
}
if(ip4!="")
{
ip4CMD = QString("netsh interface ip add address Ethernet %1 255.255.255.0").arg(ip4);
runCMD(ip4CMD);
}
if(dns1!="")
{
dns1CMD = QString("netsh interface ip add dns Ethernet %1").arg(dns1);
runCMD(dns1CMD);
}
if(dns1!="")
{
dns2CMD = QString("netsh interface ip add dns Ethernet %1").arg(dns2);
runCMD(dns2CMD);
}
}
void MainWindow::runCMD(QString cmdlst)
{
QProcess process;
process.start(cmdlst);
qDebug ()<<cmdlst;
process.waitForStarted();
process.waitForFinished();
qDebug()<<QString::fromLocal8Bit(process.readAllStandardOutput());
}
希望对你有帮助!!!