2016-12-03 6 views
0

을 알 수없는? getaddrinfo가 DNS 이름을 재전송 할 수 없습니까? 그러나 nslookup은이 주소에서 정상적으로 작동합니다. 나는 getaddrinfo를 포트없이 호출하려고했고, AI_NUMERICSERV 플래그 없이는 같은 결과를 얻었습니다.한다 getaddrinfo 오류 : 노드 이름도 servname 제공, 또는 나는 다음과 같은 오류이 오류 수단을 무엇</p> <blockquote> <p>getaddrinfo error: nodename nor servname provided, or not known</p> </blockquote> <p>있어한다 getaddrinfo와 DNS 이름에 대한 IP 주소를 얻기 위해 tryed 때

통화가 잘못되었습니다. OS X 10.11 plaftorm.

샘플 코드

struct addrinfo hints, *servinfo; 
int rv; 

printf("hostname: %s port: %s ", hostname, port); 

memset(&hints, 0, sizeof hints); 
hints.ai_family = AF_UNSPEC; // use AF_INET6 to force IPv6 
hints.ai_flags=AI_DEFAULT|AI_NUMERICSERV; 
if ((rv = getaddrinfo(hostname , port , &hints , &servinfo)) != 0) 
{ 

} 

답변

1

문제는 맥 OS X에 샌드 박스 메커니즘 연결된입니다. 내 응용 프로그램을 샌드 박스 처리한다는 사실을 잊어 버립니다. 인 타이틀먼트 파일에 다음 행이 있는지 확인하십시오.

<key>com.apple.security.app-sandbox</key> 
<true/> 
<key>com.apple.security.network.client</key> 
<true/> 
<key>com.apple.security.network.server</key> 
<true/> 

응용 프로그램이 샌드 박싱되지 않은 경우 getaddrinfo()가 예상대로 작동합니다.