Âü°í : 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             |
+--------------------------+