2010-11-24 100 views
2

是否有無論如何確定一臺Windows電腦是否使用本地實用程序,Python或PHP運行IPV6?如何檢測Windows機器是否正在運行IPV4或IPV6?

+4

任何現代機器都有。 – 2010-11-24 16:28:00

+0

漢斯是絕對正確的。你暗示xor,但實際上它是包容性的。 – 2010-11-25 08:18:57

+0

「正在運行」與「正在使用連接...」不同。我寧願使用某種IPv6探測器(也許是Google的IPv6地址)。許多機器都會配置IPv6地址,但底層網絡基礎設施不允許IPv6去任何地方(想想:你的家庭設備支持IPv6,但ISP設備不支持)。 – StanTastic 2016-10-26 08:46:19

回答

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

每臺計算機都標配IPv4。 IPv6僅在特定機器上啓用。但是如果你解析ifconfig/ipconfig,那麼你應該在輸出中找到自己的IPv4/6地址

3

當然。如果ipconfig包含真實接口的IPv6 Address條目,則可能是IPv6連接。在HKLM\SYSTEM\CurrentControlSet\services\TCPIP6也有有用的註冊表項。

0

雅各布的方法是最簡單的;您可以管理結果並進行匹配以查看網絡適配器是否具有有效的IPv6地址。

此外,您可以通過獲取Windows Management Instrumentation類Win32_NetworkAdapterConfiguration來獲得此信息。 IPAddress屬性是與網絡適配器關聯的所有IP地址的陣列,您可以對它們進行匹配以查看是否存在關聯的IPv6地址。但是PS有些過火,我會用Jakob或Wyatt的答案,除非你需要做一些更易理解和想象的事情(發送HTTP請求;更改一些網絡規則;重新啓動服務)。

1

與其他人一樣,列舉接口並檢查IPv6地址。替代方案包括嘗試打開IPv6套接字或讓Python撥打電話WSCEnumProtocols()

相關問題