You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法通过netsh读取IPv6地址,脚本读取功能异常求助

解决删除手动IP后netsh ipv6 show address缓存权限报错问题

问题分析

报错提示Unable to move the cache: Access is denied. (0x5),本质是执行netsh命令的进程没有足够权限访问系统网络缓存目录——要么是脚本未以管理员权限运行,要么是删除IP操作导致缓存目录权限异常。

修复方案

  • 强制以管理员权限运行脚本
    Windows下修改/读取网络配置的netsh命令必须用管理员权限执行。可以在脚本开头加入自动提权代码:

    import ctypes, sys
    
    def is_admin():
        try:
            return ctypes.windll.shell32.IsUserAnAdmin()
        except:
            return False
    
    if not is_admin():
        ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, __file__, None, 1)
        sys.exit()
    

    也可以右键终端或脚本,选择「以管理员身份运行」后再执行命令。

  • 重置网络缓存与权限
    打开管理员命令提示符,执行以下命令重置网络组件:

    netsh winsock reset
    netsh int ip reset
    

    执行完成后重启电脑,再尝试读取IP地址。

  • 优化命令执行方式
    替换subprocess.getoutput为subprocess.check_output,捕获输出同时避免潜在的缓存依赖问题:

    import subprocess
    try:
        output = subprocess.check_output(
            ['netsh', 'interface', 'ipv6', 'show', 'address', 'LocalNetwork'],
            stderr=subprocess.STDOUT,
            text=True
        )
        print(output)
    except subprocess.CalledProcessError as e:
        print(f"命令执行失败: {e.output}")
    
  • 验证适配器名称准确性
    先执行netsh interface ipv6 show interfaces确认你的以太网适配器准确名称,避免因名称拼写错误触发隐性权限报错。

内容的提问来源于stack exchange,提问作者Bogdan R

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 13:59:59