CC++利用netsh设置动态IP和静态IP

    技术2022-07-14  60

    在使用电脑时我们可以根据在更改以太网Internet协议版本4(TCP/IP)的属性来设置动态IP和静态IP

    但是这样做很麻烦,我们可以通过程序来更改静态IP和动态IP,只需要一条简单的代码就可以实现。

    静态IP:

    system("cmd /c netsh interface ip set address \"以太网\" static 192.168.1.10 255.255.255.0 192.168.1.1");

    动态IP:

    system("cmd /c netsh interface ip set address name = \"以太网\" source = dhcp"); system("netsh interface ip set dns name = \"以太网\" source = dhcp");

    显示所有网络适配器(网卡、拨号连接等)的完整TCP/IP配置信息:

    system("ipconfig /all");

    注意:“以太网”是根据网络连接文件夹中的名称来命名的,有的是本地连接!!!

    根据这两条指令可以制作一个简单的设置IP状态的小程序

    #include<iostream> #include<stdio.h> #include<string> #include<stdlib.h> int main() { system("ipconfig /all"); printf("\n"); printf("------------------------------------------------------------------------\n"); printf("设置静态IP输入:1\n"); printf("设置动态IP输入:2\n"); printf("------------------------------------------------------------------------\n"); printf("请输入:"); int model = 0; scanf_s("%d", &model); while (model != 1 && model != 2) { printf("输入无效,请重新输入\n"); printf("------------------------------------------------------------------------\n"); printf("请输入:"); scanf_s("%d", &model); if (model == 1 || model == 2)break; } if (model == 1) //设置静态IP { char *ret = (char*)malloc(128); memset(ret, 0, sizeof(ret)); char static_ip_1[] = "cmd /c netsh interface ip set address \"以太网\" static"; char space[] = " "; printf("输入IP地址(192.168.1.110):"); char static_ip_2[20]; scanf_s("%s", static_ip_2, 20); printf("输入子网掩码(255.255.255.0):"); char static_mask[20]; scanf_s("%s", static_mask, 20); printf("输入默认网关(192.168.1.1):"); char static_gateway[20] = ""; scanf_s("%s", static_gateway, 20); int len1 = strlen(static_ip_1) + 1; strcat_s(ret, len1, static_ip_1);//"cmd /c netsh interface ip set address \"以太网\" static" int len2 = strlen(ret) + strlen(space) + 1; strcat_s(ret, len2, space);//"cmd /c netsh interface ip set address \"以太网\" static " int len3 = strlen(ret) + strlen(static_ip_2) + 1; strcat_s(ret, len3, static_ip_2);//"cmd /c netsh interface ip set address \"以太网\" static 192.168.1.110" int len4 = strlen(ret) + strlen(space) + 1; strcat_s(ret, len4, space);//"cmd /c netsh interface ip set address \"以太网\" static 192.168.1.110 " int len5 = strlen(ret) + strlen(static_mask) + 1; strcat_s(ret, len5, static_mask);//"cmd /c netsh interface ip set address \"以太网\" static 192.168.1.110 255.255.255.0" int len6 = strlen(ret) + strlen(space) + 1; strcat_s(ret, len6, space);//"cmd /c netsh interface ip set address \"以太网\" static 192.168.1.110 255.255.255.0 192.168.1.1" int len7 = strlen(ret) + strlen(static_gateway) + 1; strcat_s(ret, len7, static_gateway); system(ret); free(ret); printf("静态IP设置成功\n"); printf("------------------------------------------------------------------------\n"); } else if (model == 2) //设置动态IP { system("cmd /c netsh interface ip set address name = \"以太网\" source = dhcp"); printf("动态IP设置成功\n"); printf("------------------------------------------------------------------------\n"); } else { printf("输入错误\n"); } }

    测试结果:

    1.设置静态IP

    运行程序,输入1,再次输入IP地址,子网掩码,默认网关,提示静态IP设置成功。 找到以太网Internet协议版本4(TCP/IP)的属性看到设置成功。

    2.输入2设置动态IP

    运行程序,输入2,提示动态IP设置成功。 找到以太网Internet协议版本4(TCP/IP)的属性看到设置成功。

    Processed: 0.010, SQL: 9