如何检测Windows机器是否正在运行IPV4或IPV6?

时间:2010-11-24 16:09:33

标签: windows ipv6 ipv4

有没有办法确定Windows计算机是否使用本机实用程序,python或php运行IPV6?

5 个答案:

答案 0 :(得分:5)

这是我通过尝试打开IPv6套接字解决问题的方法。如果系统没有抛出错误,那么它正在使用IPv6。

import socket

def isIPV6():   
    ipv6 = True
    try:
        s = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
    except:
        ipv6 = False
    return ipv6

答案 1 :(得分:3)

不确定。如果ipconfig包含实际接口的IPv6 Address条目,则您可能已获得IPv6连接。 HKLM\SYSTEM\CurrentControlSet\services\TCPIP6上还有一些有用的注册表项。

答案 2 :(得分:1)

每台计算机都标配IPv4。 IPv6仅在特定计算机上启用。但是,如果您解析ifconfig / ipconfig,那么您应该在输出中找到自己的IPv4 / 6地址

答案 3 :(得分:1)

枚举接口并检查IPv6地址,就像其他人所说的那样。替代方案包括尝试打开IPv6套接字或让Python调用WSCEnumProtocols()

答案 4 :(得分:0)

雅各布的方法是最简单的;您可以管道结果并进行匹配以查看网络适配器是否具有有效的IPv6地址。

此外,您可以通过获取Windows Management Instrumentation类Win32_NetworkAdapterConfiguration来实现此目的。属性IPAddress是与网络适配器关联的所有IP地址的数组,您可以匹配它们以查看是否存在关联的IPv6地址。但PS有点矫枉过正,除非你需要做一些更容易理解和喜欢的事情(发送HTTP请求;更改一些网络规则,重新启动服务),否则我会选择Jakob或Wyatt的答案。