如何真正以编程方式更改 IP 地址而无需重启(也无需连接)?

如何真正以编程方式更改 IP 地址而无需重启(也无需连接)?

确实,我已经尝试了所有方法,但没有一个对我有用的解决方案。

  1. WMI - 一切都很完美,但是当没有连接时我无法更改 IP 地址。O_o 你在开玩笑吗?如果没有正确的 IP 地址,我怎么能建立连接?
  2. IPHelper - 什么都没做。只是将地址添加到表中。重启后不起作用。
  3. netsh - 我认为这是愚蠢的方法,但是好吧,如果你不知道其他方法,你可以尝试一下。在你知道之前,网络适配器名称可以包含国际字符。有人知道它实际上是如何工作的吗,我的意思是在里面?
  4. 注册表 - 重启后可正常工作。我不想重启。有人知道如何通知注册表项更改吗?

答案1

我制作了一个你可能会喜欢的脚本。
它使用 netsh 来实现你所需要的。

只需将此处的代码复制到新文件中,并将其命名为 configip.bat 或任何您喜欢的名称(只是不要将其命名为 ipconfig:)

您需要修改脚本中的几项内容:
您想要的 IP 地址、子网掩码和网关。
所有 DNS 服务器都设置为 Google 的 (8.8.8.8),因此它们很可能适合您 - 除非您的 ISP 要求您使用他们的服务器。在这种情况下,请使用它们。

您有多种本地网络(有线和无线)选项,以及 DHCP(自动分配 IP)。
还有一个选项可以转储当前配置,以便您可以从 netsh 角度查看配置。
这将允许您轻松修改我的脚本,因为您将在 c:\networkconfig.txt 文件中拥有所有参数。

当然,如果您需要进一步的修改帮助,我会在这里:)


@echo off
cls
:start
echo.
echo IP Configuration
echo.
echo 1. LAN Home
echo 2. LAN Office
echo 3. LAN DHCP
echo 4. WLAN Home
echo 5. WLAN Office
echo 6. Configuration Dump
echo 7. Quit
echo.

set /p userinput=Enter your choice: set option=%userinput:~0,1% if "%option%"=="1" goto homelan if "%option%"=="2" goto officelan if "%option%"=="3" goto landhcp if "%option%"=="4" goto homewan if "%option%"=="5" goto officewan if "%option%"=="6" goto configdump if "%option%"=="7" goto end echo. echo Invalid choice goto start

:homelan echo. echo Applying LAN HOME configuration. echo. netsh interface ip set address "Local Area connection" static 192.168.1.2 255.255.255.0 192.168.1.1 1 netsh interface ip set dns name="Local Area Connection" static 8.8.8.8 goto end

:officelan echo. echo Applying LAN OFFICE configuration. echo. netsh interface ip set address "Local Area connection" static 123.456.78.90 255.255.255.0 123.456.78.254 1 netsh interface ip set dns name="Local Area Connection" static 8.8.8.8 goto end

:landhcp echo. echo Applying DYNAMIC configuration. echo. netsh interface ip set address name="Local Area Connection" source=dhcp netsh interface ip set dns name="Local Area Connection" source=dhcp goto end

:homewan echo. echo Applying WLAN HOME configuration. echo. netsh interface ip set address name="Wireless Network Connection" source=dhcp netsh interface ip set dns name="Wireless Network Connection" source=dhcp goto end

:officewan echo. echo Applying WLAN OFFICE configuration. echo. netsh interface ip set address name="Wireless Network Connection" static 123.456.78.90 255.255.255.0 123.456.78.254 1 netsh interface ip set dns name="Wireless Network Connection" static 8.8.8.8 goto end

:configdump netsh -c interface dump > c:\networkconfig.txt echo. echo Config file "c:\networkconfig.txt" created. echo. echo To restore settings from config dump, use: echo netsh -f networkconfig.txt echo. pause goto end

:end

相关内容