inet_ntoa(3) - 인터넷 표준 점 표기법(dotted-decimal notation)으로 변환
C언어 header/apa | inet.h 2019. 9. 23. 18:07반응형
inet_ntoa(3)
#include <arpa/inet.h>
char *inet_ntoa(struct in_addr in);
network byte order의 binary 주소를 "a.b.c.d"형태인 IPv4 주소(dotted-decimal notation) 형태의 문자열로 변환한다.
위의 struct in_addr는 AF_INET Address Family 주소 체계에 포함된 구조체이다.
struct sockaddr_in {
sa_family_t sin_family; /* AF_INET */
in_port_t sin_port; /* port 번호 - network byte order(즉, big endian) */
struct in_addr sin_addr; /* IP address */
};
/* Internet address. */
struct in_addr {
uint32_t s_addr; /* address in network byte order */
};
파리미터
in
- accept(2), getpeername(2), getsockname(2) 등으로 얻은 주소정보이다.
RETURN
숫자 점 표기법의 IP주소 : 인간이 쉽게 알아볼 수 있는 "a.b.c.d" 형태의 IP 주소 문자열을 return 한다.
활용 예제
int server_fd;
int connected_fd;
struct sockaddr_in client;
socklen_t addr_len = sizeof(struct sockaddr_in);
char remote_ip_addr[16];
......
if((connected_fd = accept(server_fd, &client, &addr_len)) == -1) {
fprintf(stderr, "socket create error: %s\n", strerror(errno));
return -1;
}
strncpy(remote_ip_addr, inet_ntoa(client.sin_addr.s_addr), 16);
printf("%s IP에서 접속하였습니다.\n", remote_ip_addr);
......
see also : Socket 통신과 Socket 응용
반응형
'C언어 header > apa | inet.h' 카테고리의 다른 글
inet_addr(3) - IP주소를 network byte order의 binary 주소로... (0) | 2019.09.23 |
---|---|
byte order 변환 API (host ↔ network byte order) (0) | 2019.09.23 |