2011-09-15 3 views
1

Dns.GetHostAddresses ("fred")를 사용하는 경우 응답으로 IPv4 주소 만 반환합니다. 어떻게 IPv6 주소를 얻는가? 내가 사용할 다른 방법이 있습니까?GetHostAddress()는 IPv4 만 IPv6를 반환합니다.

Socket.OSSupportsIPv6이 true를 반환하고 IPv6 연결이 정상적으로 작동합니다. OS는 Windows 2008 R2, .Net 버전은 3.5입니다.

+8

"fred"에 연결된 IPv6 DNS 레코드가 있습니까? – Lazarus

+0

@Lazarus : 아니요. 호스트 파일에 항목을 추가 했으므로 이제 ipv4 및 ipv6 주소가 모두 해결되었습니다. 호스트 이름과 관련된 DNS 레코드가 있는지 어떻게 알 수 있습니까? GetHostAddresses()가 작동하지 않는데 "ping -6 fred"가 정상적으로 작동하는 이유는 무엇입니까? – ya23

+0

@ ya23 필자는 IPv6을 해결할 수 없을 때 ping이 IPv4 조회로 돌아갈 것으로 의심됩니다. – Lazarus

답변

1

IPv6은 여전히 ​​DNS를 사용하여 주소를 확인하므로이 기능을 사용하려면이 도메인 이름에 대한 영역 파일에 IPv6 항목을 추가해야합니다. 그러면 제대로 해결됩니다.

IPv6를 사용할 수없는 경우 핑이 '-6'플래그를 지정한 후에는 원하는대로되지 않을 것이라고 생각합니다.

+0

이것은 내가보고있는 것이 아닙니다. 'dns.lookup ('google.com', {all : true}, ...)을 사용하여 node.js에서 쿼리하면'Cn에서 ipv6과 ipv4 주소를 얻을 수 있습니다. 'Dns.GetHostAddresses ("google .com ")'동일한 컴퓨터에 ipv6 주소가 반환되지 않습니다. – gman

+0

IPv6가 시스템에 설치되어 있지 않으면 GetHostAddresses가 IPv6 주소를 필터링합니다. Google이 로컬 네트워크에 있지 않다면 IPv6에 매핑 된 IPv4를 얻고있을 수 있습니다. 자신과 Google간에 end-to-end IPv6을 보유하고 있습니까? 여기서는 node.js와 .Net 실행 시스템이 동일하고 그렇지 않은 경우 모두 동일한 DNS 확인 체인에 대해 구성되어 있다고 가정합니다. – Lazarus

+0

[예를 들어] (http://stackoverflow.com/questions/37386839/both-dns-gethostaddress-and-dns-gethostentry-return-only-ipv4-addresss-how-do-i). 어쩌면 내가 바보 같은 짓을하고있을거야. – gman

관련 문제