¿ù°£ Àα⠰Խù°

°Ô½Ã¹° 58°Ç
   
ÀÎÅÍ³Ý ÁÖ¼ÒÁ¶ÀÛ ÇÔ¼ö - inet_addr(), inet_aton(), inet_ntoa()
±Û¾´ÀÌ : ÃÖ°í°ü¸®ÀÚ ³¯Â¥ : 2010-12-15 (¼ö) 11:16 Á¶È¸ : 9391
±ÛÁÖ¼Ò :
                          

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




 


À̸§ Æнº¿öµå
ºñ¹Ð±Û (üũÇÏ¸é ±Û¾´À̸¸ ³»¿ëÀ» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.)
¿ÞÂÊÀÇ ±ÛÀÚ¸¦ ÀÔ·ÂÇϼ¼¿ä.
   

 



 
»çÀÌÆ®¸í : ¸ðÁö¸®³× | ´ëÇ¥ : ÀÌ°æÇö | °³ÀÎÄ¿¹Â´ÏƼ : ·©Å°´åÄÄ ¿î¿µÃ¼Á¦(OS) | °æ±âµµ ¼º³²½Ã ºÐ´ç±¸ | ÀüÀÚ¿ìÆí : mojily°ñ¹ðÀÌchonnom.com Copyright ¨Ï www.chonnom.com www.kyunghyun.net www.mojily.net. All rights reserved.