기본 UDP 클라이언트 - 서버 프로그램을 작성 중이며 getbyhostname()에서 예상되는 결과를 얻지 못했습니다. 다음은 코드에서 가져온 코드입니다.getbyhostname()은 어떻게 작동합니까?
char *clientHostName = malloc(HOST_NAME_MAX);
gethostname(clientHostName, HOST_NAME_MAX);
printf("%s\n",clientHostName);
struct hostent thehost = gethostbyname(clientHostName);
printf("%ld\n",(*((unsigned long *) thehost->h_addr_list[0])));
이렇게 첫 번째 print 문은 내 컴퓨터의 이름을 출력합니다. 그러나 두 번째 print 문이 내 IP 주소를 출력 할 것으로 예상됩니다. 그러나 아니요, 다음과 같은 내용을 인쇄합니다 : 4398250634. 인쇄하는 것은 무엇입니까? 내 IP 주소는 어떻게 얻습니까?
그래서 IP 인쇄에 대한 좋은 접근 방법은 무엇입니까? – batbrat
'NI_NUMERICHOST' 플래그로'getnameinfo'를 사용하여 문자열로 변환 한 다음 문자열처럼 인쇄하십시오 (예 :'printf ("ip address : % s \ n", str);)) –
고맙습니다. 감사합니다 :) – batbrat