Âü°í : http://blog.naver.com/ifkiller?Redirect=Log&logNo=70081700467
ÁÖ¼Ò¸¦ Ç¥ÇöÇϱâ À§ÇØ »ç¿ëÇÏ´Â ±¸Á¶Ã¼ sockaddr_in ¾È¿¡¼ IP¸¦ ³ªÅ¸³»±â À§ÇÑ µ¥ÀÌÅÍ Å¸ÀÔÀº unsigned longÇüÀÔ´Ï´Ù. ±×·¡¼ IPÁÖ¼Ò Á¤º¸¸¦ ÇÒ´ç Çϱâ À§Çؼ ¹®ÀÚ¿ÀÇ "192.168.10.10"À» unsigned long À¸·Î ¹Ù²ãÁÖ¾î¾ß ÇÕ´Ï´Ù.
192.168.10.10ÀÇ Ç¥Çö¹æ½ÄÀº Dotted-Decimal Notation Áï, ½ÊÁø¼ö Ç¥Çö ¹æ½ÄÀ̶ó°í ¸»ÇÏ¸ç °è»êÀ» Çؼ unsigned longÀ¸·Î ¹Ù²Ü ¼ö ÀÖÁö¸¸ ¹Ù²ãÁÖ´Â ÇÔ¼ö°¡ ÀÖ½À´Ï´Ù.
ÀÌ·± ÇÔ¼öµéÀ» ÀÎÅÍ³Ý ÁÖ¼Ò Á¶ÀÛ ÇÔ¼ö¶ó°í Çϴµ¥ ÀÌ ÇÔ¼öµéÀº ´Ü¼øÈ÷ º¯È¯¸¸ ½ÃÄÑÁÖ´Â°Ô ¾Æ´Ï¶ó ¹ÙÀÌÆ® ¼ø¼¸¦ ¹Ù²ãÁÖ´Â Àϵµ ÇØÁÝ´Ï´Ù.
1. inet_addr()ÇÔ¼ö
ÀÌ ÇÔ¼ö´Â Dotte-Decimal Notation Çü½ÄÀ» ºò¿£µð¾È 32ºñÆ® °ªÀ¸·Î º¯È¯½ÃÄÑÁÝ´Ï´Ù.
unsigned long inet_addr(const char *string);
À§°¡ ÇÔ¼öÀÇ ¿øÇüÀε¥ ÇÔ¼ö ÆĶó¹ÌÅÍ °ª¿¡ IPÁÖ¼Ò ¹®ÀÚ¿ÀÇ ½ÃÀÛÁÖ¼Ò¸¦ ³Ö¾îÁÖ¸é ÀÌ ÇÔ¼ö°¡ ¾Ë¾Æ¼ ºò¿£µð¾È 32ºñÆ® unsigned long ÇüÀÇ °ªÀ¸·Î ¸¸µé¾îÁÝ´Ï´Ù.
¼º°øÇÏ¸é ºò¿£µð¾È Çü½ÄÀÇ 32ºñÆ® °ªÀ», ½ÇÆÐÇϸé INADDR_NONEÀ» ¸®ÅÏÇÕ´Ï´Ù.
INADDR_NONEÀº ½ÇÁ¦·Î -1·Î ¼±¾ðµÇ¾î ÀÖ½À´Ï´Ù.
2. inet_aton()ÇÔ¼ö
ÀÌ ÇÔ¼ö´Â ±âº»ÀûÀ¸·Î ÁÖ¼Ò ¹®ÀÚ¿À» ºò¿£µð¾È 32ºñÆ® °ªÀ¸·Î º¯È¯ ½ÃÄÑÁÖ´Â°Ç inet_addr()ÇÔ¼ö¿Í °°Áö¸¸ ´Ù¸¥ Á¡ÀÌ ÀÖ½À´Ï´Ù.
inet_addr()ÇÔ¼ö´Â º¯È¯µÈ °ªÀ» sockaddr_in ±¸Á¶Ã¼ÀÇ ¸É¹öº¯¼ö ¾È¿¡ ¶Ç ¼±¾ðµÈ in_addr ±¸Á¶Ã¼¿¡ °ªÀ» ´ëÀÔÇØÁÖ¾î¾ß ÇÕ´Ï´Ù. ÇÏÁö¸¸ inet_aton()ÇÔ¼ö´Â ÀÚµ¿À¸·Î °ªÀ» ´ëÀÔ½ÃÄÑÁÝ´Ï´Ù.
µû¶ó¼ µû·Î ´ëÀÔÇØ¾ß ÇÒ ÇÊ¿ä°¡ ¾ø¾îÁý´Ï´Ù. ¸ÕÀú ÀÌ°ÍÀÌ ÇÔ¼öÀÇ ¿øÇüÀÔ´Ï´Ù.
int inet_aton(const char *string, struct in_addr *addr);
ù¹ø° ÆĶó¹ÌÅÍ °ªÀº ÁÖ¼Ò ¹®ÀÚ¿ÀÌ ÀÖ´Â Æ÷ÀÎÅͺ¯¼ö°¡ µé¾î°¡°í µÎ¹ø° ÆĶó¹ÌÅÍ °ªÀº ±¸Á¶Ã¼ ¸É¹öº¯¼öÁß ÁÖ¼Ò°ªÀÌ µé¾î°¡´Â ¸É¹öº¯¼öÀÇ ÁÖ¼Ò°ªÀ» ³Ö¾îÁÖ½Ã¸é µË´Ï´Ù.
ÇÔ¼ö¸¦ ¼º°ø½ÃÅ°¸é 0ÀÌ ¾Æ´Ñ°ª, ½ÇÆÐÇϸé 0ÀÌ ¸®Åϵ˴ϴÙ.
ÀÌ ÇÔ¼ö´Â inet_addr()ÇÔ¼öº¸´Ù Æí¸®ÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
3. inet_ntoa() ÇÔ¼ö
ÀÌ ÇÔ¼ö´Â ³×Æ®¿öÅ© ¹ÙÀÌÆ® ¼ø¼ÀÇ 32ºñÆ® °ªÀ» Dotted-Decimal NotationÀ¸·Î º¯È¯½ÃÄÑÁÖ´Â ÇÔ¼ö ÀÔ´Ï´Ù. inet_aton()ÇÔ¼ö¿Í ¹Ý´ëµÇ´Â °³³äÀÌÁÒ.
char * inet_ntoa(struct in_addr addr);
ÀÌ°ÍÀÌ ÇÔ¼öÀÇ ¿øÇüÀÔ´Ï´Ù.
ÆĶó¹ÌÅÍ°ªÀº ±¸Á¶Ã¼ÀÇ ¸É¹öº¯¼ö Áß ÁÖ¼Ò ¹®ÀÚ¿ÀÌ ÀÖ´Â ¸É¹öº¯¼ö¸¦ ³Ö¾îÁÖ¸é µË´Ï´Ù.
ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇÒ ¶§ ÀÚ¼¼È÷ º¸¼Å¾ß ÇÒ °ÍÀÌ Àִµ¥ ¸®ÅÏ Å¸ÀÔÀÌ ¹®ÀÚ¿ÀÇ Æ÷ÀÎÅͶó´Â °ÍÀÔ´Ï´Ù. ¹®ÀÚ¿ÀÇ Æ÷ÀÎÅÍ°¡ ¸®ÅÏ µÈ´Ù´Â Àǹ̴ ¹®ÀÚ¿À» ÀúÀåÇÑ Àå¼Ò°¡ ¾îµò°¡¿¡ Á¸ÀçÇÑ´Ù´Â Àǹ̰¡ µÇ´Âµ¥, ¿ì¸®´Â Á÷Á¢ Á¦°øÇÏÁö ¾Ê°í ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÏ°Ô µË´Ï´Ù.
±×¸®°í ¹®ÀÚ¿ÀÇ Æ÷ÀÎÅ͸¸ ¾ò¾î³»¸é µÇ´Â °ÅÁÒ.
±×·³ ¹®ÀÚ¿ÀÌ ÀúÀåµÈ °ø°£ÀÌ ¾îµð ÀÖ´ÂÁö ±Ã±ÝÇÒ ¼ö Àִµ¥ ÀÌ ÇÔ¼ö°¡ Á¤ÀÇµÉ ¶§ ±× ¾È¿¡ static ¹öÆÛ°¡ ¼±¾ðµÇ¾î ÀÖ¾î¼ ±×°÷¿¡ ÀúÀåÀÌ µÇ´Â °Í ÀÔ´Ï´Ù.
¸¸¾à ´Ù½Ã Çѹø ´Ù¸¥ ÁÖ¼Ò Á¤º¸¸¦ °¡Áö°í ÀÌ ÇÔ¼ö¸¦ È£ÃâÇϸé ÀÌ ¹öÆÛ´Â ´Ù¸¥ µ¥ÀÌÅͷΠä¿öÁö°ÚÁÒ? ±× ¸»Àº ´Ù½Ã Çѹø ÀÌ ÇÔ¼ö°¡ È£Ã⠵DZâ Àü±îÁö¸¸ ¸®ÅÏ µÈ Æ÷ÀÎÅÍ°¡ À¯È¿ÇÏ´Ù´Â ¸»·Î ÀÌÇØÇÒ ¼ö ÀÖÀ¸½Ç °Ì´Ï´Ù.
ÀÌ ÇÔ¼ö°¡ ¼º°øÇßÀ» ½Ã ÇØ´ç ¹®ÀÚ¿ÀÇ Æ÷ÀÎÅ͸¦ ¸®ÅÏÇÏ°í, ½ÇÆÐÇϸé -1À» ¸®ÅÏÇÕ´Ï´Ù.
EX) netflow ¾ÆÀÌÇÇ µ¥ÀÌŸ
mysql> select ipv4_dst_addr from records;
....................
....................
| 1933852374 |
| 1933848226 |
| 1933848622 |
| 1933847892 |
| 1933850658 |
| 1933836733 |
| 1933848452 |
| 1933847860 |
| 1933841581 |
| 1933843476 |
+---------------+
mysql> select inet_ntoa(ipv4_dst_addr) from records;
....................
....................
| 115.68.62.214 |
| 115.68.46.162 |
| 115.68.48.46 |
| 115.68.45.84 |
| 115.68.56.34 |
| 115.68.1.189 |
| 115.68.47.132 |
| 115.68.45.52 |
| 115.68.20.173 |
| 115.68.28.20 |
+--------------------------+