Windows之快速修改网卡IP

一、需求说明

  作为一名运维工程师,尤其是乙方工程师,我们经常遇到一个问题就是需要切换笔记本终端的网络环境。场景一,我们在办公环境可能使用的是DHCP自动获取IP地址;场景二,我们连接公司内网服务器可能要去配置固定内网IP地址;场景三,我们在客户现场需要根据现场网管分配的IP地址临时配置固定IP地址。如下脚本可以帮助我们快速切换和配置相应场景的IP环境。

二、脚本内容及说明

1、脚本内容

:: 设置IP地址
set /p choice=请选择设置类型(1:固定内网IP / 2:自动获取IP / 3:临时固定IP ):
echo.
if "%choice%"=="1" goto ip1
if "%choice%"=="2" goto ip2
if "%choice%"=="3" goto ip3
goto main

:ip1
echo 固定内网IP自动设置开始...
echo.
echo 正在设置固定内网IP及子网掩码
cmd /c netsh interface ip set address name="本地连接" source=static addr=192.168.3.201 mask=255.255.255.0 gateway=192.168.3.1 gwmetric=1
echo 正在设置固定内网DNS服务器
cmd /c netsh interface ip add dnsservers name="本地连接" address=211.142.211.124 index=1
cmd /c netsh interface ip add dnsservers name="本地连接" address=114.114.114.114 index=2
echo 固定内网IP设置完成
pause
exit
if errorlevel 2 goto main
if errorlevel 1 goto end

:ip2
echo IP自动设置开始....
echo.
echo 自动获取IP地址....
netsh interface ip set address name = "本地连接" source = dhcp
echo 自动获取DNS服务器....
netsh interface ip set dns name = "本地连接" source = dhcp
@rem 设置自动获取IP
echo 设置完成
pause
exit
if errorlevel 2 goto main
if errorlevel 1 goto end

:ip3
echo 临时固定IP自动设置开始...
echo.
echo 正在设置临时固定IP及子网掩码
set /p ip=请输入需要配置的IP地址:
set /p ym=请输入需要配置的子网掩码:
set /p gt=请输入需要配置的网关:
cmd /c netsh interface ip set address name="本地连接" source=static addr="%ip%" mask="%ym%" gateway="%gt%" gwmetric=1
echo 正在设置内网DNS服务器
cmd /c netsh interface ip add dnsservers name="本地连接" address=114.114.114.114 index=1
cmd /c netsh interface ip add dnsservers name="本地连接" address=8.8.8.8 index=2
echo 内网IP设置完成
pause
exit
if errorlevel 2 goto main
if errorlevel 1 goto end

:end

2、脚本说明

  • 本地连接表示有线网卡的名称,此名称为默认名称,如果有自定义修改网卡名称,请根据实际情况修改更新。
  • 其中ip1模块配置个人固定内网IP地址,请根据个人实际IP地址进行修改更新。
  • ip3模块配置临时固定IP地址,请按照IP地址规范输入正确的IP地址和掩码。

三、使用演示

1、确认网卡名称

  • cmd环境下输入ipconfig /all命令确认网卡名称:
    在这里插入图片描述

  • 网线连接后查看网络连接确认网卡名称
    在这里插入图片描述

2、执行ipset.bat文件

右键ipset.bat文件,以管理员身份运行
在这里插入图片描述

3、选择设置类型1

执行后弹窗如下,选择需要执行的任务
在这里插入图片描述
在这里插入图片描述

4、检查配置的IP地址信息

在这里插入图片描述

5、选择设置类型2

在这里插入图片描述
在这里插入图片描述

7、检查配置结果

在这里插入图片描述

8、选择设置类型3

  • 选择设置类型3
    在这里插入图片描述
  • 输入需要配置的IP地址、掩码、网关
    在这里插入图片描述

9、检查配置结果

在这里插入图片描述

Windows系统下,可以使用WinAPI函数来更改网卡IP地址。下面是一个简单的示例代码,可以更改指定网卡IP地址和子网掩码。 ```c #include <stdio.h> #include <stdlib.h> #include <winsock2.h> #include <ws2tcpip.h> #include <iphlpapi.h> #include <netioapi.h> #pragma comment(lib, "iphlpapi.lib") #pragma comment(lib, "ws2_32.lib") int main() { WCHAR adapterName[] = L"本地连接"; // 要更改的网卡名称 WCHAR ipAddr[] = L"192.168.1.10"; // 新的IP地址 WCHAR subnetMask[] = L"255.255.255.0"; // 新的子网掩码 // 初始化Winsock WSADATA wsaData; if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) { printf("WSAStartup failed: %d\n", WSAGetLastError()); return 1; } // 获取网卡信息 ULONG outBufLen = 0; GetAdaptersAddresses(AF_UNSPEC, 0, NULL, NULL, &outBufLen); PIP_ADAPTER_ADDRESSES pAddresses = (PIP_ADAPTER_ADDRESSES) malloc(outBufLen); if (pAddresses == NULL) { printf("malloc failed\n"); return 1; } if (GetAdaptersAddresses(AF_UNSPEC, 0, NULL, pAddresses, &outBufLen) != NO_ERROR) { printf("GetAdaptersAddresses failed\n"); free(pAddresses); return 1; } // 遍历网卡信息,找到要更改的网卡 PIP_ADAPTER_ADDRESSES pAdapter = pAddresses; while (pAdapter) { if (wcscmp(pAdapter->FriendlyName, adapterName) == 0) { // 找到要更改的网卡,设置新的IP地址和子网掩码 PIP_ADAPTER_UNICAST_ADDRESS pUnicast = pAdapter->FirstUnicastAddress; while (pUnicast) { if (pUnicast->Address.lpSockaddr->sa_family == AF_INET) { PIP_ADAPTER_PREFIX pPrefix = pAdapter->FirstPrefix; while (pPrefix) { if (pPrefix->Address.lpSockaddr->sa_family == AF_INET) { ((SOCKADDR_IN *) pUnicast->Address.lpSockaddr)->sin_addr.S_un.S_addr = inet_addr(ipAddr); ((SOCKADDR_IN *) pPrefix->Prefix.lpSockaddr)->sin_addr.S_un.S_addr = inet_addr(subnetMask); break; } pPrefix = pPrefix->Next; } break; } pUnicast = pUnicast->Next; } break; } pAdapter = pAdapter->Next; } // 释放内存 free(pAddresses); // 卸载Winsock WSACleanup(); return 0; } ``` 注意:这个示例代码只能更改IPv4地址和子网掩码,如果需要更改其他信息,需要根据实际情况进行修改。另外,在实际使用时需要以管理员权限运行程序。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恒悦sunsite

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值