Windowsコンピュータがネイティブユーティリティ、python、またはphpを使用してIPV6を実行しているかどうかを判断する方法はありますか?
5 に答える
これが、IPv6ソケットを開こうとすることで問題を解決した方法です。システムがエラーをスローしなかった場合は、IPv6を使用しています。
import socket
def isIPV6():
ipv6 = True
try:
s = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
except:
ipv6 = False
return ipv6
もちろん。実際のインターフェイスのエントリipconfig
が含まれている場合は、IPv6接続を使用している可能性があります。IPv6 Address
には、便利なレジストリエントリもありますHKLM\SYSTEM\CurrentControlSet\services\TCPIP6
。
すべてのコンピューターには、標準でIPv4が付属しています。IPv6は、特定のマシンでのみ有効になります。ただし、ifconfig / ipconfigを解析すると、出力にIPv4/6アドレスが表示されるはずです。
他の人が述べているように、インターフェイスを列挙し、IPv6アドレスを確認します。別の方法としては、IPv6ソケットを開こうとしたり、Pythonに呼び出しをさせたりする方法があります。WSCEnumProtocols()
ヤコブのアプローチは最も単純です。結果をパイプ処理して照合を行い、ネットワークアダプターに有効なIPv6アドレスがあるかどうかを確認できます。
さらに、これは、WindowsManagementInstrumentationクラスWin32_NetworkAdapterConfigurationをフェッチすることで取得できます。プロパティIPAddress
は、ネットワークアダプタに関連付けられているすべてのIPアドレスの配列であり、それらと照合して、IPv6
関連付けられているアドレスがあるかどうかを確認できます。しかし、PSは少しやり過ぎです。もっとわかりやすくて凝ったことをする必要がない限り、私はJakobまたはWyattの答えを選びます(HTTPリクエストを送信し、いくつかのネットワークルールを変更し、サービスを再開します)。