如何在不重启的情况下真正以编程方式更改 ip 地址(也没有连接)?

6 windows ip-address

真的,我尝试了所有方法,但没有适合我的解决方案。

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

ext*_*mko 2

我制作了一个你可能会喜欢的脚本。
它使用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

Run Code Online (Sandbox Code Playgroud)