我需要在经常登录的三个无线网络中固定IP。
每次更换网络时设置这些 IP 和网关都很麻烦。
我愿意编写一个脚本来在这 3 个固定 IP 之间更改我的 IP 和网关,并选择让其自动获取 IP(当我在另一个网络时)。
我的脚本的一个附加功能是如果它能够发现我登录的无线网络并自动确定 IP。
这可能吗?
谢谢。
答案1
ipconfig /renew
获取新的 IP 地址或默认网关该NETSH
命令执行此操作。检查这。
netsh
请参阅此示例通过命令手动设置 DNS 地址:
netsh interface ip set dns "Local Area Connection" static 192.168.0.200
配置您的 NIC 以动态获取其 DNS 设置(* Obtain DNS server address automatically
):
netsh interface ip set dns "Local Area Connection" dhcp
并设置设置* Obtain an IP address automatically
:
netsh interface ip set address "Local Area Connection" dhcp
更多信息:阅读此文从命令提示符配置 TCP/IP和如何从命令提示符更改 IP 地址。
这是假设 3 件事。
1) 您尝试更改 IP 的网络适配器是“本地连接”。它也可能是“本地连接 2”或“无线网络连接”。请在控制面板中查找正确的名称。
2)您要设置的IP是192.168.0.101,将其更改为您想要使用的任何IP。
3) 默认网关和 DNS 是同一个 IP。如果你使用的是某种路由器,它们通常是相同的。更改此设置以匹配使用命令找到的网络配置ipconfig /all
con1:
这是我为您的问题解决方案创建的批处理文件示例:只需在类型标签后更改命令
如何创建批处理文件:将此代码粘贴到记事本中并将其另存为"test.bat"
笔记:将连接名称更改"local area connection"
为您的"wireless connection"
名字
@ECHO off
cls
:start
ECHO.
ECHO 1. Change Connection1 Static IP
ECHO 2. Change Connection2 Static IP
ECHO 3. Change Connection3 Static IP
ECHO 4. Obtain an IP address automatically
ECHO 5. Exit
set choice=
set /p choice=Type the number to print text.
if not '%choice%'=='' set choice=%choice:~0,1%
if '%choice%'=='1' goto con1
if '%choice%'=='2' goto con2
if '%choice%'=='3' goto con3
if '%choice%'=='4' goto autosearch
if '%choice%'=='5' goto end
ECHO "%choice%" is not valid, try again
ECHO.
goto start
:con1
ECHO Connecting Connection 1
netsh interface ip set address "Local Area Connection" static 192.168.0.10 255.255.255.0 192.168.0.1 1
goto end
:con2
ECHO Connecting Connection 2
netsh interface ip set address "Local Area Connection1" static 192.168.0.10 255.255.255.0 192.168.0.1 1
goto end
:con3
ECHO Connecting Connection 3
netsh interface ip set address "Local Area Connection2" static 192.168.0.10 255.255.255.0 192.168.0.1 1
goto end
:autosearch
ECHO obtaining auto IP
ipconfig /renew "Local Area Connection"
goto end
:bye
ECHO BYE
goto end
:end
希望这对你有帮助。更多参考请查看此处通过批处理文件设置您的 IP 地址
答案2
您可以制作一个包含基于“netsh”命令的配置命令的.bat脚本文件,用于例子:
这将更改 IP 地址和默认网关:
“netsh int ip set 地址“本地连接”静态{192.168.0.101} 255.255.255.0 {192.168.0.254} 1”
这将更改 DNS:
“netsh int ip set dns“本地连接”静态{192.168.0.254}主要”
答案3
我知道这是一个很老的话题,但对于像我这样的许多人来说它仍然有用。
根据 op 要求的 WiFi,我创建了一个 Wi-Fi 批处理脚本。它将获取当前连接的 Wi-Fi,并根据该设置静态 IP 或 DHCP。
脚本如下:
@echo off
Ping www.google.com -n 1 -w 1000
cls
if errorlevel 1 (
if not "%1"=="am_admin" (powershell start -verb runas '%0' am_admin & exit /b)
:start
for /f "delims=: tokens=2" %%n in ('netsh wlan show interface name="Wi-Fi" ^| findstr ^/R "\<SSID"') do set "Network=%%n"
set "Network=%Network:~1%"
IF "%Network%"=="Home" goto DHCP
ELSE IF "%Network%"=="OfficeWifi1" goto Static
ELSE IF "%Network%"=="AnotherOffice2" goto Static2
ELSE IF "%Network%"=="OpenWifi" goto DHCP
ELSE goto DHCP
goto end
:Static
set IP=192.168.1.118
set Sub_Mask=255.255.255.0
set D_Gate=192.168.4.4
set DNS=192.168.4.1
set DNS2=192.168.4.2
netsh interface ip set address "Wi-Fi" static %IP% %Sub_Mask% %D_Gate% 1
netsh interface ipv4 set dns name="Wi-Fi" static %DNS%
netsh interface ip add dns name="Wi-Fi" addr=%DNS2% index=2
netsh int ip show config
goto end
:Static2
set IP=192.168.2.201
set Sub_Mask=255.255.255.0
set D_Gate=192.168.4.4
set DNS=192.168.4.1
set DNS2=192.168.4.2
netsh interface ip set address "Wi-Fi" static %IP% %Sub_Mask% %D_Gate% 1
netsh interface ipv4 set dns name="Wi-Fi" static %DNS%
netsh interface ip add dns name="Wi-Fi" addr=%DNS2% index=2
netsh int ip show config
goto end
:DHCP
netsh int ip set address name = "Wi-Fi" source = dhcp
netsh interface ipv4 set dns name="Wi-Fi" source="dhcp"
goto end
:end
msg * "WLAN wise IP is set up"
)
您应该将其保存为批处理文件,然后以 %% 的形式运行该批处理文件,因为命令在命令提示符中不起作用。
提示: 您还可以在任务计划程序中使用下面的触发器和上面的批处理路径添加操作
Trigger : On an event
Log: Microsoft-Windows-NetworkProfile/Operational
Source: NetworkProfile
Event ID: 10000
更新
在 Windows 10 和 11 中,您还可以为每个已保存的 WiFi 网络设置 IP 配置以及 DHCP/静态设置。
答案4
在此 cmd 中如何设置 dns netsh 接口 ip 设置地址名称 =“本地连接”静态 192.168.1.1 255.255.255.0