2009-11-22 2 views
1

저는 SystemConfiguration 프레임 워크를 사용하여 응용 프로그램의 동적 저장소에서 현재 IP를 가져옵니다.SystemConfiguration을 사용하여 IP의 호스트 이름을 가져올 수 있습니까?

동적 저장소에서도 호스트 이름을 가져올 수 있습니까? 현재 IP는 로컬 일 수 있으므로 반환 값을 "mymac.local"또는 "2adg3.dsl.lgtpmi.sbcglobal.net"과 같은 것으로 가져 오려고합니다. 이는 인터넷에 연결된 방식에 따라 다릅니다.

SCDynamicStoreCopyLocalHostName (NULL)을 시도했지만 IP가 인터넷의 모든 사용자가 액세스 할 수있는 호스트 이름으로 확인되는 경우에도 컴퓨터 이름 자체 만 반환합니다 (.local 부분 제외).

답변

3

당신은 그냥 그것을 시도

[[NSHost currentHost] names] 

시도 할 수 있으며 내 컴퓨터의 모든 로컬 호스트 이름을 반환합니다.

업데이트 :
이 일부 NSHost 문제 해결에 좋은 블로그 게시물입니다 :
내가`gethostbyname2을 제안하고 있었다 http://cocoawithlove.com/2009/11/drop-in-fix-for-problems-with-nshost.html

+0

('* 3 *')',하지만 가능성이 동일 반환을 결과는 10 배 더 쉽습니다. –

+0

나는 [[NSHost currentHost] 이름]이 내가 원하는 것을 정확히 언급 했음에 틀림 없다. 그러나 모든 사람들은 NSHost가 블로킹 (blocking)하고 스레드로부터 안전하지 않기 때문에 NSHost를 사용하지 말라고 말한다. 나는 CFHost를 조사해 왔지만 "mymac.local"과 같은 로컬 이름을 반환하지 않습니다. –

+0

NSHost에 대한 몇 가지 해결 방법을 보여주는 원래 응답에 대한 링크를 추가했습니다. –

관련 문제