inet_pton(3)
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
<a href="/modules/moniwiki/wiki.php/manSearch?google=none&name=inet_pton">inet_pton</a>(3)

1장. inet_pton(3)

차례
1.1절. »ç¿ë¹ý
1.2절. ¼³¸í
1.3절. ¹Ýȯ°ª
1.4절. ¿¹Á¦

ÀÌÁø ³×Æ®¿÷ ÁÖ¼Ò°ªÀ» ¾ò¾î¿Â´Ù.


1.1절. »ç¿ë¹ý

#include <sys/socket.h>
#include <sys/types.h>
#include <arpa/inet.h>

int inet_pton(int af, const char *src, void *dst);
		


1.2절. ¼³¸í

ÀÎÀÚ·Î ÁÖ¾îÁö´Â ÀÎÅÍ³Ý ÁÖ¼Ò¹®ÀÚ¿­src¸¦ ÀÌÁø ³×Æ®¿öÅ© ÁÖ¼Ò·Î º¯È¯½ÃŲ´ÙÀ½ dst¿¡ º¹»çÇÑ´Ù.

ÀÌ ÇÔ¼ö´Â inet_addr(3) ÇÔ¼öÀÇ ÇÁ·ÎÅäÄݹü¿ë ¹öÁ¯À¸·Î inet_addr ÀÌ ´ÜÁö Ipv4 ÁÖ¼Òº¯È¯¿¡¸¸ »ç¿ëÇÒ¼ö Àִ°Ϳ¡ ¹ÝÇØ ÇÁ·ÎÅäÄÝ¿¡ °ü°è¾øÀÌ »ç¿ë°¡´ÉÇÏ´Ù. º¯È¯½Ãų ÇÁ·ÎÅäÄÝ Å¸ÀÔÀÇ ÁöÁ¤Àº af¸¦ ÅëÇØ °áÁ¤ÇÒ¼ö ÀÖ´Ù.

ÇÁ·ÎÅäÄÝ Å¸ÀÔÀº 2°¡Áö¸¦ »ç¿ëÇÒ¼ö ÀÖ´Ù.

AF_INET

IPv4 ¹öÁ¯À» µû¸£´Â ÀÎÅÍ³Ý ¹®ÀÚ¿­ ÁÖ¼Ò¸¦ 32 bit ÀÌÁøµ¥ÀÌŸ·Î º¯°æÇϱâ À§Çؼ­ »ç¿ëµÈ´Ù. ÁÖ¾îÁö´Â ÁÖ¼Ò´Â Á¡¹ÚÀÌ 4ÇüÁ¦ ŸÀÔÀÇ "ddd.ddd.ddd.ddd" °¡ µÈ´Ù.

AF_INET6

IPv6 ¹öÁ¯À» µû¸£´Â ÀÎÅÍ³Ý ¹®ÀÚ¿­ ÁÖ¼Ò¸¦ 128 bit ÀÌÁøµ¥ÀÌŸ·Î º¯°æÇϱâ À§Çؼ­ »ç¿ëµÈ´Ù. ÁÖ¾îÁö´Â ÁÖ¼Ò ¹®ÀÚ¿­Àº "xxxx:xxxx:x:xxxx::x" ½ºÅ¸ÀÏÀÌ´Ù.


1.3절. ¹Ýȯ°ª

¸¸¾à Áö¿øÇÏÁö¾Ê´Â ÇÁ·ÎÅäÄÝÀ» af¸¦ ÅëÇØ ÁöÁ¤ÇßÀ»°æ¿ì À½ÀÇ Á¤¼ö°ªÀ» ¸®ÅÏÇϸç errno ¸¦ EAFNOSUPPORT·Î ¼¼ÆÃÇÑ´Ù. À߸øµÈ ÀÎÅÍ³Ý ÁÖ¼Ò ¹®ÀÚ¿­À» ÀÔ·ÂÇßÀ»°æ¿ì´Â 0ÀÌ ¸®Åϵǰí, ¼º°øÇßÀ»°æ¿ì¿¡´Â º¯È¯µÈ ÀÌÁøµ¥ÀÌŸ(¾çÀÇÁ¤¼ö)¸¦ ¸®ÅÏÇÑ´Ù.


1.4절. ¿¹Á¦

#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <unistd.h>

int main()
{
    ulong ipv4_addr;
    char  ipv6_addr[16];

    char addr4_str[20];
    char addr6_str[40];

    struct in_addr  st_addr4;
    struct in6_addr st_addr6;

    // IPv4 ÀÎÅÍ³Ý ÁÖ¼Ò º¯È¯ ¿¹Á¦ 
    inet_pton(AF_INET, "192.168.0.224", (void *)&ipv4_addr);
    printf("%lu\n", ipv4_addr);

    st_addr4.s_addr = ipv4_addr;
    inet_ntop(AF_INET, (void *)&st_addr4,addr4_str,sizeof(addr4_str));
    printf("%s\n\n", addr4_str);

    // IPv6 ÀÎÅÍ³Ý ÁÖ¼Ò º¯È¯ ¿¹Á¦
    inet_pton(AF_INET6, "3ffe:ffff:0:f101::1", (void *)&ipv6_addr);
    memcpy((void *)&st_addr6, (void *)&ipv6_addr, sizeof(st_addr6));
    inet_ntop(AF_INET6, (void *)&st_addr6, addr6_str, sizeof(addr6_str));
    printf("%s\n", addr6_str);
}
		


EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.