Windows 컴퓨터가 네이티브 유틸리티, Python 또는 PHP를 사용하여 IPV6을 실행하는지 확인하려면 어떻게합니까?Windows 머신이 IPV4 또는 IPV6를 실행 중인지 확인하는 방법은 무엇입니까?
답변
이렇게하면 IPv6 소켓을 열어서이 문제를 해결할 수 있습니다. 시스템이 오류를 발생시키지 않으면 IPv6을 사용 중입니다.
import socket
def isIPV6():
ipv6 = True
try:
s = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
except:
ipv6 = False
return ipv6
모든 컴퓨터는 표준 IPv4로 제공됩니다. IPv6은 특정 컴퓨터에서만 사용할 수 있습니다. 하지만 ifconfig/ipconfig를 분석하면 출력에서 IPv4/6 주소를 찾아야합니다.
틀린, IPv6는 보통 기본적으로 활성화되어 있으며 컴퓨터가 라우팅 가능한 IPv6 주소를 가져올 수있는 경우 기본 설정으로 사용됩니다. – StanTastic
@ StanTastic이 답변은 상황이 매우 달라졌을 때 6 세입니다 –
확실히. ipconfig
에 실제 인터페이스에 대해 IPv6 Address
항목이 포함되어 있으면 IPv6 연결이 가능할 것입니다. HKLM\SYSTEM\CurrentControlSet\services\TCPIP6
에도 유용한 레지스트리 항목이 있습니다.
야콥의 접근 방식은 가장 간단합니다. 결과를 파이프하고 네트워크 어댑터가 유효한 IPv6 주소를 가지고 있는지 확인하기 위해 일치 작업을 수행 할 수 있습니다.
또한 Windows Management Instrumentation 클래스 Win32_NetworkAdapterConfiguration을 가져 와서 얻을 수 있습니다. 속성 IPAddress
은 네트워크 어댑터와 연결된 모든 IP 주소의 배열이며 주소가 일치하면 IPv6
주소가 연결되어 있는지 확인할 수 있습니다. 하지만 PS는 좀 지나치게 잔인합니다. Jakob 또는 Wyatt의 대답은 이해하기 쉽고 멋지게 (HTTP 요청 보내기, 일부 네트워크 규칙 변경, 서비스 다시 시작) 할 필요가 없다면 가야합니다.
다른 모든 사람들처럼 인터페이스를 열거하고 IPv6 주소를 확인하십시오. 대안으로는 IPv6 소켓을 열거 나 파이썬에게 전화를 걸도록하는 방법이 있습니다. WSCEnumProtocols()
IPV6 소켓을 열려고 시도하는 것이 트릭입니다. 코드에 대한 내 대답을 살펴보십시오. – CLJ
최신 기계에는 둘 다 있습니다. –
한스는 절대적으로 맞습니다. 당신은 xor를 암시하지만, 실제로, 그것은 inclusive 또는입니다. –
"실행 중"은 "연결을 사용 중입니다 ..."와 다릅니다. 차라리 일종의 IPv6 프로브 (Google IPv6 주소에?)를 사용하고 싶습니다. 꽤 많은 수의 기계가 IPv6 주소를 구성하지만, 기본 네트워크 인프라는 IPv6가 어디에도 갈 수 없게합니다 (가정용 장비는 IPv6을 지원하지만 ISP 장비는 지원하지 않습니다). – StanTastic