2010-06-24 1 views
2

C++을 사용하는 Windows에서 IPv6이 설치되어 있거나 활성화되어 있는지 프로그래밍 방식으로 확인할 수 있습니까? 인터페이스 레벨 또는 시스템 전체.Windows에서 IPv6이 활성화되어 있는지 프로그래밍 방식으로 확인하십시오.

+0

그냥 호스트에서 사용할 수 있기 때문에 라우터가 지원할 것입니다 ... –

+0

해당 컴퓨터에서 IPv6을 지원하는 경우 추가 구성 옵션을 제공해야합니다. 많은 사용자가 IPv6 지원없이 오래된 컴퓨터에서 실행됩니다. –

답변

1

WSCEnumProtocols()은 IPv6이 프로토콜로 설치되어 있는지 확인하는 데 사용할 수 있습니다. 가장 쉬운

2

네트워크 가용성이 많은 상황에서 가장 쉬운 방법은 장애가 발생하면이를 사용하고 예외를 catch하는 것입니다.

0

하나의 대답은 GetAdapterAddresses()을 사용하여 시스템 인터페이스를 열거하고 IPv6 주소를 찾는 것입니다.

-1

const int sock6 = socket (AF_INET6, SOCK_DGRAM, 0); 
const BOOL is_ip6_enabled = (SOCKET_ERROR != sock6); 
close (sock6); 
+0

이것은 실제로 작동하지 않습니다. Windows 2008에서는 IPv6을 사용할 수 없어도 소켓 핸들을 얻을 수 있습니다. – shoosh

+0

"IPv6 인터페이스 사용"과 "사용"을 혼동시킬 수 있습니까? –

0

는 XP에 IPv6를 사용할 수 전에 ipv6 install를 실행해야합니다, 기억, 그래서 조금 더 복잡 당신이 생각보다있어, 소켓을 열어보십시오 단지입니다.