3

Windowsコンピュータがネイティブユーティリティ、python、またはphpを使用してIPV6を実行しているかどうかを判断する方法はありますか?

4

5 に答える 5

6

これが、IPv6ソケットを開こうとすることで問題を解決した方法です。システムがエラーをスローしなかった場合は、IPv6を使用しています。

import socket

def isIPV6():   
    ipv6 = True
    try:
        s = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
    except:
        ipv6 = False
    return ipv6
于 2010-11-29T19:31:23.270 に答える
3

もちろん。実際のインターフェイスのエントリipconfigが含まれている場合は、IPv6接続を使用している可能性があります。IPv6 Addressには、便利なレジストリエントリもありますHKLM\SYSTEM\CurrentControlSet\services\TCPIP6

于 2010-11-24T16:18:53.377 に答える
1

すべてのコンピューターには、標準でIPv4が付属しています。IPv6は、特定のマシンでのみ有効になります。ただし、ifconfig / ipconfigを解析すると、出力にIPv4/6アドレスが表示されるはずです。

于 2010-11-24T16:12:24.160 に答える
1

他の人が述べているように、インターフェイスを列挙し、IPv6アドレスを確認します。別の方法としては、IPv6ソケットを開こうとしたり、Pythonに呼び出しをさせたりする方法があります。WSCEnumProtocols()

于 2010-11-26T00:22:44.733 に答える
0

ヤコブのアプローチは最も単純です。結果をパイプ処理して照合を行い、ネットワークアダプターに有効なIPv6アドレスがあるかどうかを確認できます。

さらに、これは、WindowsManagementInstrumentationクラスWin32_NetworkAdapterConfigurationをフェッチすることで取得できます。プロパティIPAddressは、ネットワークアダプタに関連付けられているすべてのIPアドレスの配列であり、それらと照合して、IPv6関連付けられているアドレスがあるかどうかを確認できます。しかし、PSは少しやり過ぎです。もっとわかりやすくて凝ったことをする必要がない限り、私はJakobまたはWyattの答えを選びます(HTTPリクエストを送信し、いくつかのネットワークルールを変更し、サービスを再開します)。

于 2010-11-24T16:26:00.567 に答える