sockaddr_in에 IP 주소를 문자열로 출력해야 할 경우가 있다.
sockaddr_in structure에 대해서는 자료가 많으니 보면되고 아래와 같이 하면 출력된다.
#include <stdio.h>
#include <arpa/inet.h>
#include <string.h>
#define IP_ADDR "91.121.209.194"
#define PORT 12345
int main() {
struct sockaddr_in sa;
char ipbuf[INET_ADDRSTRLEN] = { 0, };
// inet_addr() 대신 inet_pton() 가능
// c.g. inet_pton(AF_INET, IP_ADDR, &(sa.sin_addr));
sa.sin_addr.s_addr = inet_addr(IP_ADDR);
sa.sin_port = htons(PORT);
memset(ipbuf, 0x00, sizeof(char)*INET_ADDRSTRLEN);
inet_ntop(AF_INET, &(sa.sin_addr), ipbuf, INET_ADDRSTRLEN);
printf("IP address : %s\n", ipbuf);
printf("Port : %d\n", ntohs(sa.sin_port));
printf("----\n");
memset(ipbuf, 0x00, sizeof(char)*INET_ADDRSTRLEN);
strcpy(ipbuf, inet_ntoa(sa.sin_addr));
printf("IP address : %s\n", ipbuf);
printf("Port : %d\n", ntohs(sa.sin_port));
return 0;
}
'놀기 > 잡스러운 것' 카테고리의 다른 글
제안요청서 (RFP, request for proposal) (0) | 2021.07.12 |
---|---|
나누어진 문자열 순서 뒤집어 붙이기 (0) | 2021.06.25 |
1 프레임짜리 H.264 color bar 영상 & Hex 값 만들기 (0) | 2021.06.25 |
Color bars/Display 관련 소스 코드 (0) | 2021.06.25 |
random 값 만들기 (0) | 2021.06.24 |
댓글