1、QT修改IP地址程序原理
通过系统调用windows的dos命令来修改IP地址。
例如:netsh interface ip set address "WLAN" static 192.168.10.88 255.255.255.0 192.168.10.1
该条命令的意思是将名为WLAN的网卡的IP地址修改为静态IP,192.168.10.88,子网掩码为255.255.255.0,网关为192.168.10.1。
网卡名称查看:网络和共享中心→更改适配器设置
当然,也可以自行修改网卡名,只要保证dos命令中的网卡名跟实际网卡名一致即可。
2、QT调用dos命令
其实使用方法跟linux中的system()系统调用类似,这里是使用QProcess来调用。
首先包含头文件:
#include <QProcess>
然后参考如下代码修改IP:
QProcess *process = new QProcess();
QString cmd = "netsh interface ip set address ";
cmd +="\"WLAN\" "; //网卡名称要加双引号
cmd +="static ";
cmd += ui->lineEdit()->text(); //从界面上获取IP地址
cmd +=" 255.255.255.0 ";
cmd += "192.168.10.1";
qDebug()<<"cmd = "<<cmd;
process->start(cmd); //执行dos命令
process->waitForFinished(); //等待执行完成
delete process;
注意命令dos命令之间的空格,程序执行结果如下:
3、注意事项
-------------------------------The last but not least --------------------------------------
打开QT时和打开发布的程序时,一定要以管理员身份运行,否则使用该方法修改不了IP。建议在qt程序 属性->兼容性 中勾选以管理员身份运行选项。