2013-11-26 3 views
0

시스템에서 IPv6 주소 만 사용할 수있는 경우 AF_INET 소켓을 열 수 있습니까?시스템에서 IPv6 주소 만 사용할 수있는 경우 AF_INET 소켓이 필요합니까?

IPv6 주소 만 활성화되어있는 시스템 (듀얼 스택 아님)의 HWADDR을 얻으려고합니다.

AF_INET을 사용하여 소켓을 열 수 있습니까? MAC 주소를 찾는 데에만 관심이 있습니다.

+0

'AF_INET6'소켓에서'SIOCGIFHWADDR'을 사용할 수 없습니까? – glglgl

답변

0

나는이 문제를 보지 못한다. IPv4 및 IPv6 소켓 모두에서 SIOCGIFHWADDR으로 전화 할 수 있습니다.

AF_INET 또는 AF_INET6을 사용하여 소켓을 만들지 않아도 ioctl() 호출이 성공하고 요청하는 장치의 HW addr을 제공합니다.

1

socket() 시스템 호출을 사용하여 IPv4 소켓을 만들 수는 있습니다. 그러나 bind()을 사용하여 IPv6 인터페이스에 바인딩하면 실패합니다.

+0

ioctl (SIOCGIFHWADDR 플래그)을 사용하여 HW 주소를 얻는 것만 필요합니다. –

0

IPv4 소켓을 만들 수 있습니다. 가능하지 않다면 다음 달에 v4 가능 네트워크에 연결할 때 시스템에서 IPv4 주소를 수락 할 수 없습니까?

그러나 SIOCGIFHWADDR은 루프백이 아닌 인터페이스를 통한 경로가 없으면 작동하지 않을 것입니다. 목표 시스템에서 tat를 시도하거나 AF_INET과 AF_INET6을 모두 시도해보고 오류를 찾아 내고 결과를 반환하는 모든 것을 사용할 수 있습니다.

관련 문제