2010-11-24 2 views
2

Windows 컴퓨터가 네이티브 유틸리티, Python 또는 PHP를 사용하여 IPV6을 실행하는지 확인하려면 어떻게합니까?Windows 머신이 IPV4 또는 IPV6를 실행 중인지 확인하는 방법은 무엇입니까?

+4

최신 기계에는 둘 다 있습니다. –

+0

한스는 절대적으로 맞습니다. 당신은 xor를 암시하지만, 실제로, 그것은 inclusive 또는입니다. –

+0

"실행 중"은 "연결을 사용 중입니다 ..."와 다릅니다. 차라리 일종의 IPv6 프로브 (Google IPv6 주소에?)를 사용하고 싶습니다. 꽤 많은 수의 기계가 IPv6 주소를 구성하지만, 기본 네트워크 인프라는 IPv6가 어디에도 갈 수 없게합니다 (가정용 장비는 IPv6을 지원하지만 ISP 장비는 지원하지 않습니다). – StanTastic

답변

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 주소를 찾아야합니다.

+0

틀린, IPv6는 보통 기본적으로 활성화되어 있으며 컴퓨터가 라우팅 가능한 IPv6 주소를 가져올 수있는 경우 기본 설정으로 사용됩니다. – StanTastic

+3

@ StanTastic이 답변은 상황이 매우 달라졌을 때 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 소켓을 열거 나 파이썬에게 전화를 걸도록하는 방법이 있습니다. WSCEnumProtocols()

+0

IPV6 소켓을 열려고 시도하는 것이 트릭입니다. 코드에 대한 내 대답을 살펴보십시오. – CLJ