2015-01-28 2 views
2

으로 해결합니다. iPhone 응용 프로그램을 만들고 있는데 호스트 이름 문자열을 IP 주소 문자열로 해결해야합니다. 예 : "MyComputer.local"-> "192.168.0.7". 나는 몇 가지 일을 시도했지만 아무도 일하지 못했습니다. 그것은 항상 inet_ntop에 충돌, 그리고 예, 나는 테스트하기 위해 기존의 호스트 이름을 사용하고, 어떤 이유호스트 이름 문자열을 IP 문자열

struct hostent *hostentry; 
hostentry = gethostbyname("MyComputer.local"); 
char *ipbuf = NULL; 
inet_ntop(AF_INET, hostentry->h_addr_list[0], ipbuf, hostentry->h_length); 
ipAddress = [NSString stringWithFormat:@"%s" , ipbuf]; 

: 이것은 내가 지금 가지고있는 것입니다. 감사!

답변

1

inet_ntop 대신 inet_ntoa을 시도하십시오.

조금까지 복합 명령문을 파괴하는 데 도움이

:

struct hostent *hostentry; 
hostentry = gethostbyname("zaph.com"); 
NSLog(@"name: %s", hostentry->h_name); 

struct in_addr **addr_list; 
addr_list = (struct in_addr **)hostentry->h_addr_list; 
char* ipAddr = inet_ntoa(*addr_list[0]); 

NSString *ipAddress = [NSString stringWithFormat:@"%s", ipAddr]; 
NSLog(@"ipAddress: %@", ipAddress); 

출력 :

이름 : zaph.com
IPADDRESS : 72.35.89.108

관련 문제