2010-06-18 3 views
7

Windows로 MacOSX 응용 프로그램을 이식하려고하는데 getifaddrs에서 문제가 발생했습니다. 기본적으로 Windows에서는 지원하지 않습니다. 다시 구현하는 방법을 생각하고있어 (AF_INET 및 AF_INET6) Windows의 "동등한"기능은 MacOSX 지원과 전혀 다른 것처럼 보입니다.Windows XP로 getifaddrs 이식

이전에 이런 종류의 전환을 수행 한 사람이 있습니까? 그렇다면 MacOSX와 같은 인터페이스 정보를보고하는 창을 얻을 수있는 좋은 방법이 있습니까?

답변

12

가장 가까운 기능 GetAdaptersInfoGetAdaptersAddresses 있습니다. MSDN 설명서는 매우 포괄적이므로 필요한 모든 것을 찾아야합니다.

+0

예, 나는 그들을 보았다. 나는 그 정보로부터 IPv6 존 인덱스를 얻는 방법을 약간 확신 할 수 없다. 그러나 나는 명백한 것을 놓쳤을지도 모른다. – Goz

1

아마도 libpcap의 win32 포트가 도움이 될까요? Windows에서

(또는 4.0 하위 버전은 Libnet 파일 패치의 포트가있는 경우)

+0

건배 내가 살펴 보겠습니다 (가 상단에 #include <stdio.h> 누락 된 점에 유의하고, Ws2_32.lib에 연결해야합니다 특히, Beej's pageshowip.c 예는 매우 유용하고, here는 Windows 예입니다.) :) – Goz

5

getifaddrs()은 여러 가지 플랫폼을 지원해야하는 경우 POSIX 및 Windows와 호환되는 getaddrinfo을 사용해야합니다. 얼핏 보면 조금 복잡해 보이지만 실제로 그렇게 나쁘지는 않습니다. This SO question에는 좋은 답변과 주제에 대한 링크가 있습니다.

+0

왜 downvote? 나는 잘못되었거나 오해의 소지가있는 것을 작성했는지 궁금하다. – patrickvacek

+0

질문은 호스트 이름을 IP 주소로 확인하는 것이 아닙니다. –

+0

@VasilyRedkin, 링크를 따르거나'getaddinfo'에 대한 맨 페이지를 읽었습니까? 이 기능은 단순히 호스트 이름을 IP 주소로 변환하는 것이 아닙니다. 네트워크 인터페이스 정보를보고하는 데 사용할 수 있습니다. 내 답변에서 언급했듯이 [Beej의 네트워킹 가이드] (http://beej.us/guide/bgnet/output/html/multipage/syscalls.html#getaddrinfo)의 showip.c 예제를 참조하십시오. – patrickvacek

관련 문제