호스트 이름 (예 : nameOfTheDevice
)이 영역의 신뢰할 수있는 DNS 서버에 등록되어 있다고 가정하면 CFHost을 사용하여 주소 또는 호스트 이름을 조회 할 수 있습니다. 예 :
NSString* hostname = @"nameOfTheDevice";
CFHostRef hostRef = CFHostCreateWithName(kCFAllocatorDefault, (CFStringRef)hostname);
Boolean lookup = CFHostStartInfoResolution(hostRef, kCFHostAddresses, NULL);
NSArray* addresses = (NSArray*)CFHostGetAddressing(hostRef, &lookup);
[addresses enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSString *strDNS = [NSString stringWithUTF8String:inet_ntoa(*((struct in_addr *)obj))];
NSLog(@"Resolved %d->%@", idx, strDNS);
}];
(오류 코드는 프로덕션 코드에 저장해야합니다.) DNS 서버가 그 호스트 이름을 인식하지 못한다면 할 수있는 일이 없다는 것을 명심하십시오. 특히 DHCP/DNS 서버가 내장 된 다양한 기능을 가진 가정용 네트워크에서 성공적인 조회를 수행 할 수 있다고 가정하는 것은 안전하지 않습니다.
'nameOfTheDevice.local'가 작동해야합니다. 적어도 내 iPhone과 SSH에서 작동합니다. –
'nameOfTheDevice.local'은 (호스트 이름이 'nameOfTheDevice' 인 장치의) bonjour가 켜져있을 때만 작동합니다. – MiuMiu