为了获取网络适配器信息、删除 DNS 缓存和 IP 地址,并通过 ipconfig /renew6 自动获取 IPv6 地址,可以使用以下步骤和命令。

ipconfig | Microsoft Learn

PS C:\Users\Administrator> ipconfig /?

用法:
    ipconfig [/allcompartments] [/? | /all |
                                 /renew [adapter] | /release [adapter] |
                                 /renew6 [adapter] | /release6 [adapter] |
                                 /flushdns | /displaydns | /registerdns |
                                 /showclassid adapter |
                                 /setclassid adapter [classid] |
                                 /showclassid6 adapter |
                                 /setclassid6 adapter [classid] ]

其中
    adapter             连接名称 (允许使用通配符 * 和 ?,参见示例)

    选项:
      ipconfig  /?               显示此帮助消息
     ipconfig   /all             显示完整配置信息。
     ipconfig   /release         释放指定适配器的 IPv4 地址。
     ipconfig   /release6        释放指定适配器的 IPv6 地址。
     ipconfig   /renew           更新指定适配器的 IPv4 地址。
     ipconfig   /renew6          更新指定适配器的 IPv6 地址。
     ipconfig   /flushdns        清除 DNS 解析程序缓存。
     ipconfig   /registerdns     刷新所有 DHCP 租用并重新注册 DNS 名称
    ipconfig    /displaydns      显示 DNS 解析程序缓存的内容。
    ipconfig    /showclassid     显示适配器允许的所有 DHCP 类 ID。
    ipconfig    /setclassid      修改 DHCP 类 ID。
    ipconfig    /showclassid6    显示适配器允许的所有 IPv6 DHCP 类 ID。
    ipconfig    /setclassid6     修改 IPv6 DHCP 类 ID。


默认情况下,仅显示绑定到 TCP/IP 的每个适配器的 IP 地址、子网掩码和默认网关。

对于 Release 和 Renew,如果未指定适配器名称,则会释放或更新所有绑定到 TCP/IP 的适配器的 IP 地址租用。

对于 Setclassid 和 Setclassid6,如果未指定 ClassId,则会删除 ClassId。

示例:
    > ipconfig                       ... 显示信息
    > ipconfig /all                  ... 显示详细信息
    > ipconfig /renew                ... 更新所有适配器
    > ipconfig /renew EL*            ... 更新所有名称以 EL 开头的连接
    > ipconfig /release *Con*        ... 释放所有匹配的连接,例如“有线以太网连接 1”或“有线以太网连接 2”
    > ipconfig /allcompartments      ... 显示有关所有隔离舱的信息
    > ipconfig /allcompartments /all ... 显示有关所有隔离舱的详细信息

 


为了获取网络适配器信息、删除 DNS 缓存和 IP 地址,并通过 ipconfig /renew6 自动获取 IPv6 地址,可以使用以下步骤和命令。

1. 获取网络适配器信息

首先,查看网络适配器信息:

cmdCopy Code
ipconfig /all

2. 删除 DNS 缓存

清除 DNS 缓存的命令是:

cmdCopy Code
ipconfig /flushdns

3. 释放当前的 IP 地址

释放当前的 IP 地址:

cmdCopy Code
ipconfig /release

4. 通过 DHCP 重新获取 IPv6 地址

使用以下命令获取新的 DHCP IPv6 地址:

cmdCopy Code
ipconfig /renew6

5. 自动化命令

你可以将这些命令组合成一个批处理文件(.bat),这样每次只需运行这个文件即可完成所有操作。以下是一个示例批处理文件内容:

batCopy Code
@echo off
echo 获取网络适配器信息...
ipconfig /all

echo 清除 DNS 缓存...
ipconfig /flushdns

echo 释放当前 IP 地址...
ipconfig /release

echo 通过 DHCP 重新获取 IPv6 地址...
ipconfig /renew6

echo 完成!
pause

运行批处理文件

  1. 将上述代码复制到文本编辑器中,保存为 reset_network.bat
  2. 右键点击该文件,选择“以管理员身份运行”。

这样就能自动执行所有步骤,完成对 DNS 缓存的清除、IP 地址的释放和 IPv6 地址的获取。

整套批处理命令逐条拆解:底层原理|依赖文件|依赖关系|配套链|逻辑链路

执行脚本清单
cmd
echo 清除 DNS 缓存...
ipconfig /flushdns

echo 释放当前 IP 地址...
ipconfig /release

echo 通过 DHCP 重新获取 IPv6 地址...
ipconfig /renew6
通用前置结论:
 
ipconfig.exe 仅为命令行控制前端程序,自身不会收发任何网络报文;所有实际网络交互、缓存管理、租约维护由后台服务承载;调用核心库:iphlpapi.dlldnsapi.dll,跨进程依靠 rpcrt4.dll 完成 IPC 通信。

一、ipconfig /flushdns

底层原理

调用 dnsapi.dll 导出函数 DnsFlushResolverCache(),通过本地 RPC 通知 Dnscache(DNS Client,dnscache.dll) 清空内存中全部 DNS 解析缓存(A/AAAA 记录、CNAME、NXDOMAIN 负缓存)。
 
⚠️ 仅清理本机客户端缓存不修改 hosts、不清理 Windows DNS 服务器 (dns.exe) 缓存;对 nslookup 无效(nslookup 绕过 Dnscache)。
 
纯本地操作,无网络报文产生。

依赖文件

  1. 主程序:ipconfig.exe
  2. API 库:dnsapi.dllrpcrt4.dllkernel32.dll
  3. 后台模块:svchost.exe -k netsvcs 加载 dnscache.dll(Dnscache 服务)

依赖关系

硬性依赖:Dnscache(DNS Client)服务必须处于运行状态
 
服务停止 → 命令报错:无法刷新 DNS 解析缓存。
 
无需网络连通;不需要 Dhcp 服务。

逻辑链路

plaintext
ipconfig.exe → dnsapi.dll → RPC通道 → svchost(Dnscache/dnscache.dll)
                                  ↓
                         清空内存DNS缓存 → 返回结果给控制台

配套链

  1. PowerShell 等效:Clear-DnsClientCache
  2. 查看缓存:ipconfig /displaydns / Get-DnsClientCache
  3. 排错观测:Microsoft-Windows-DNS-Client/Operational 事件日志

二、ipconfig /release

底层原理

针对适配器 IPv4 DHCP 租约;下发指令给 Dhcp Client,构造并发送 DHCPRELEASE(UDP 68→67) 报文通知 DHCPv4 服务器归还 IPv4 地址;执行后网卡 IPv4 地址置为 0.0.0.0
 
仅作用 IPv4;不会释放 IPv6 地址

依赖文件

  1. 主程序:ipconfig.exe
  2. API 库:iphlpapi.dllrpcrt4.dllws2_32.dll
  3. 后台模块:svchost.exe -k netsvcs 加载 dhcpcsvc.dll(Dhcp IPv4 客户端)
  4. 配置持久化:注册表
     
    HKLM\SYSTEM\CurrentControlSet\Services\Dhcp\Parameters\Adapters\{网卡GUID}

依赖关系

硬性依赖:Dhcp(DHCP Client)服务运行
 
✅ 目标网卡 IPv4 设置为「自动获取 (DHCP)」;静态 IP 网卡执行无效。
 
⚠️ 网络中断场景:报文发送失败,本地依然清空 IPv4 地址。

逻辑链路

plaintext
ipconfig.exe → iphlpapi.dll → RPC → svchost(dhcpcsvc.dll)
                                  ↓
                         ws2_32构造DHCPRELEASE报文
                         UDP 68→67 发送至DHCPv4服务器
                         网卡IPv4地址清零

配套链

  1. IPv4 续租配套:ipconfig /renew
  2. IPv6 释放配套:ipconfig /release6
  3. 抓包过滤:udp.port == 67 or udp.port == 68
  4. PowerShell:Remove-NetIPAddress -AddressFamily IPv4

三、ipconfig /renew6

底层原理

触发 DHCPv6 租约续租;客户端向 DHCPv6 服务器发送 RENEW 请求(UDP 546 ↔ 547),更新 DHCPv6 分配的 IPv6 地址、DNS、租期等参数。
⚠️ 重要边界:
 
renew6 仅针对【有状态 DHCPv6 分配地址】无法刷新 SLAAC 自动生成的 IPv6 地址(SLAAC 不依赖 DHCPv6)。
 
上一条命令 ipconfig /release 只释放 IPv4,不影响 IPv6 租约,二者相互独立。

依赖文件

  1. 主程序:ipconfig.exe
  2. API 库:iphlpapi.dllrpcrt4.dllws2_32.dll
  3. 后台模块:svchost.exe -k netsvcs 加载 dhcpcsvc6.dll(DHCPv6 客户端)

依赖关系

硬性依赖:Dhcp(DHCP Client)服务运行(dhcpcsvc6.dll 隶属于该服务)
 
✅ 网络环境存在 DHCPv6 服务器,网卡启用 DHCPv6 有状态获取。
 
⚠️ 纯 SLAAC 网络下,此命令无实质效果。

逻辑链路

plaintext
ipconfig.exe → iphlpapi.dll → RPC → svchost(dhcpcsvc6.dll)
                                  ↓
                         ws2_32构造DHCPv6 RENEW报文
                         UDP 546→547 和DHCPv6服务器交互
                         更新IPv6租约与相关网络参数

配套链

  1. IPv6 释放配套:ipconfig /release6
  2. 抓包过滤:udp.port == 546 or udp.port == 547
  3. 事件日志:Microsoft-Windows-Dhcp-Client/Operational

整套脚本存在的关键运维问题(重点提醒)

cmd
ipconfig /release        # 释放IPv4
ipconfig /renew6         # 仅续租IPv6
  1. IPv4 地址释放后,不会自动重新获取 IPv4!
     
    脚本只释放 IPv4,缺少 ipconfig /renew,执行完成后电脑没有 IPv4 地址,断 IPv4 网络
  2. IPv4 DHCP 与 IPv6 DHCP 两套独立协议、两套独立客户端模块,互不影响。
  3. 优化修正版本(如需同时恢复 IPv4 + 刷新 IPv6):
cmd
echo 清除 DNS 缓存...
ipconfig /flushdns

echo 释放IPv4地址并重新获取IPv4
ipconfig /release
ipconfig /renew

echo 刷新DHCPv6地址
ipconfig /renew6

服务依赖总览

命令 依赖后台服务 协议端口
ipconfig /flushdns Dnscache 本地 IPC,无端口
ipconfig /release Dhcp(dhcpcsvc.dll) DHCPv4 UDP 67/68
ipconfig /renew6 Dhcp(dhcpcsvc6.dll) DHCPv6 UDP 546/547

 

posted @ 2024-09-24 02:38  suv789  阅读(746)  评论(0)    收藏  举报