青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

S.l.e!ep.¢%

像打了激速一樣,以四倍的速度運(yùn)轉(zhuǎn),開(kāi)心的工作
簡(jiǎn)單、開(kāi)放、平等的公司文化;尊重個(gè)性、自由與個(gè)人價(jià)值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

inet_ntop(), inet_pton()

Posted on 2011-01-04 22:41 S.l.e!ep.¢% 閱讀(1973) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): Unix

inet_ntop(), inet_pton()

Linux/uClinux 2008-11-18 14:50:06 閱讀463 評(píng)論0 ??字號(hào): ? 訂閱

Convert IP addresses to human-readable form and back.

Prototypes

#include <arpa/inet.h>

const char *inet_ntop(int af, const void *src,
                      char *dst, socklen_t size);

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

Description

These functions are for dealing with human-readable IP addresses and converting them to their binary representation for use with various functions and system calls. The "n" stands for "network", and "p" for "presentation". Or "text presentation". But you can think of it as "printable". "ntop" is "network to printable". See?

Sometimes you don't want to look at a pile of binary numbers when looking at an IP address. You want it in a nice printable form, like 192.0.2.180, or 2001:db8:8714:3a90::12. In that case, inet_ntop() is for you.

inet_ntop() takes the address family in the af parameter (either AF_INET or AF_INET6). The src parameter should be a pointer to either a struct in_addr or struct in6_addr containing the address you wish to convert to a string. Finally dst and size are the pointer to the destination string and the maximum length of that string.

What should the maximum length of the dst string be? What is the maximum length for IPv4 and IPv6 addresses? Fortunately there are a couple of macros to help you out. The maximum lengths are: INET_ADDRSTRLEN and INET6_ADDRSTRLEN.

Other times, you might have a string containing an IP address in readable form, and you want to pack it into a struct sockaddr_in or a struct sockaddr_in6. In that case, the opposite funcion inet_pton() is what you're after.

inet_pton() also takes an address family (either AF_INET or AF_INET6) in the af parameter. The src parameter is a pointer to a string containing the IP address in printable form. Lastly the dst parameter points to where the result should be stored, which is probably a struct in_addr or struct in6_addr.

These functions don't do DNS lookups—you'll need getaddinfo() for that.

Return Value

inet_ntop() returns the dst parameter on success, or NULL on failure (and errno is set).

inet_pton() returns 1 on success. It returns -1 if there was an error (errno is set), or 0 if the input isn't a valid IP address.

Example

// IPv4 demo of inet_ntop() and inet_pton()

struct sockaddr_in sa;
char str[INET_ADDRSTRLEN];

// store this IP address in sa:
inet_pton(AF_INET, "192.0.2.33", &(sa.sin_addr));

// now get it back and print it
inet_ntop(AF_INET, &(sa.sin_addr), str, INET_ADDRSTRLEN);

printf("%s\n", str); // prints "192.0.2.33"
// IPv6 demo of inet_ntop() and inet_pton()
// (basically the same except with a bunch of 6s thrown around)

struct sockaddr_in6 sa;
char str[INET6_ADDRSTRLEN];

// store this IP address in sa:
inet_pton(AF_INET6, "2001:db8:8714:3a90::12", &(sa.sin6_addr));

// now get it back and print it
inet_ntop(AF_INET6, &(sa.sin6_addr), str, INET6_ADDRSTRLEN);

printf("%s\n", str); // prints "2001:db8:8714:3a90::12"
// Helper function you can use:

//Convert a struct sockaddr address to a string, IPv4 and IPv6:

char *get_ip_str(const struct sockaddr *sa, char *s, size_t maxlen)
{
    switch(sa->sa_family) {
        case AF_INET:
            inet_ntop(AF_INET, &(((struct sockaddr_in *)sa)->sin_addr),
                    s, maxlen);
            break;

        case AF_INET6:
            inet_ntop(AF_INET6, &(((struct sockaddr_in6 *)sa)->sin6_addr),
                    s, maxlen);
            break;

        default:
            strncpy(s, "Unknown AF", maxlen);
            return NULL;
    }

    return s;
}
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            可以免费看不卡的av网站| 欧美福利视频一区| 午夜精品久久久久久久久久久| 99国产精品久久久| 一区二区三区黄色| 亚洲一区二区三区高清不卡| 一区二区精品在线| 亚洲桃花岛网站| 亚洲综合激情| 久久av最新网址| 久久亚洲综合色一区二区三区| 久久综合九色| 欧美日韩hd| 国产精品视频| 伊人激情综合| 99re视频这里只有精品| 一区二区三区四区国产| 亚洲欧美日韩另类精品一区二区三区| 午夜亚洲性色福利视频| 久久久蜜桃精品| 欧美激情国产精品| 洋洋av久久久久久久一区| 亚洲女同在线| 久久久久一本一区二区青青蜜月| 另类成人小视频在线| 欧美日韩p片| 国产日韩在线看片| 亚洲高清视频在线| 亚洲伊人一本大道中文字幕| 久久国产精品99国产精| 欧美高清一区二区| 99视频在线精品国自产拍免费观看 | 午夜精品久久久久久久久| 久久福利毛片| 欧美日韩国产欧| 国产一区二区精品在线观看| 亚洲激情网站免费观看| 亚洲男人影院| 欧美激情视频一区二区三区免费| 日韩一二三区视频| 久久久99爱| 欧美三级视频在线观看| 激情视频一区二区| 宅男精品视频| 免费成人av| 亚洲一级电影| 欧美成人免费网| 国产亚洲欧美日韩日本| 日韩视频在线观看国产| 久久精品一区蜜桃臀影院 | 狠久久av成人天堂| 99riav1国产精品视频| 久久久噜噜噜久噜久久| 99riav久久精品riav| 久久久久91| 国产精品免费网站在线观看| 亚洲黄网站在线观看| 久久av红桃一区二区小说| 亚洲人成啪啪网站| 久久国产欧美日韩精品| 国产精品v欧美精品v日韩精品| 亚洲电影免费观看高清| 午夜精品免费| 日韩一二三区视频| 美女精品在线| 狠狠狠色丁香婷婷综合激情| 亚洲一区在线播放| 亚洲欧洲综合| 久久综合色88| 狠狠色丁香婷婷综合| 香蕉久久夜色精品国产使用方法| 亚洲福利在线观看| 久久美女艺术照精彩视频福利播放| 国产精品电影网站| 一本到高清视频免费精品| 男女精品视频| 久久精品国产99国产精品| 国产精品亚洲人在线观看| 夜夜精品视频| 亚洲欧洲日韩在线| 欧美成人小视频| 在线观看日产精品| 久久婷婷影院| 久久riav二区三区| 国产日韩欧美亚洲一区| 欧美亚洲日本国产| 亚洲欧美成人综合| 国产精品美女在线观看| 亚洲一区二区在线| 一区二区三区成人 | 一区二区日韩伦理片| 亚洲电影免费观看高清| 麻豆精品一区二区综合av| 亚洲成色精品| 欧美成人免费在线| 麻豆国产精品777777在线 | 欧美亚洲综合另类| 国产手机视频精品| 久久久99免费视频| 久久久激情视频| 一区二区三区在线观看国产| 麻豆国产精品777777在线| 久久国产欧美精品| 1769国内精品视频在线播放| 欧美电影免费网站| 免费视频亚洲| 99视频精品免费观看| 亚洲精品国产精品久久清纯直播| 欧美激情一区二区三区蜜桃视频| 99国产精品久久| 一区二区三区四区国产| 国产精品高精视频免费| 欧美在线视频网站| 久久国产精品久久久久久| 曰韩精品一区二区| 亚洲成色777777女色窝| 亚洲国产一区二区在线| 欧美激情在线观看| 亚洲在线成人| 性欧美1819sex性高清| 影音先锋亚洲一区| 亚洲国产裸拍裸体视频在线观看乱了中文 | 狠狠色综合色区| 欧美激情女人20p| 欧美日韩国产三区| 欧美一区1区三区3区公司| 欧美诱惑福利视频| 亚洲人成人一区二区在线观看| 亚洲日本成人| 国产欧美精品一区aⅴ影院| 美女91精品| 欧美日韩精品免费观看视一区二区| 亚洲欧美视频一区| 久久久亚洲综合| 中文久久乱码一区二区| 午夜久久电影网| 亚洲国内自拍| 亚洲一区日韩在线| 亚洲国产日韩在线| 亚洲一区日韩在线| 在线免费日韩片| 一区二区欧美在线观看| 国语自产精品视频在线看一大j8 | 夜夜嗨av色一区二区不卡| 亚洲在线第一页| 91久久国产自产拍夜夜嗨| 在线亚洲欧美专区二区| 在线精品观看| 亚洲无玛一区| 亚洲国产精品久久人人爱蜜臀| 亚洲网站啪啪| 亚洲免费av片| 久久国产精品亚洲77777| 一区二区三区高清视频在线观看| 欧美一进一出视频| 一本久久青青| 久久男人av资源网站| 亚洲男人第一网站| 欧美大片在线观看一区| 久久精品女人| 欧美午夜不卡| 欧美激情一区三区| 国产一区白浆| 亚洲视频网站在线观看| 亚洲啪啪91| 久久精品视频在线看| 小嫩嫩精品导航| 欧美另类高清视频在线| 欧美波霸影院| 国产日韩欧美91| 99伊人成综合| 日韩视频免费观看高清完整版| 欧美一区二区三区精品电影| 亚洲直播在线一区| 欧美人成在线视频| 亚洲高清免费| 亚洲国产激情| 久久精品二区亚洲w码| 性欧美videos另类喷潮| 欧美天堂亚洲电影院在线观看| 欧美国产一区二区在线观看| 国内精品久久久久国产盗摄免费观看完整版| 日韩亚洲欧美综合| avtt综合网| 欧美韩日亚洲| 亚洲国产精品黑人久久久| 一区二区在线视频| 欧美在线视频播放| 久久精品观看| 国产欧美一区二区精品秋霞影院| 亚洲少妇自拍| 亚洲自啪免费| 国产精品vvv| 在线视频欧美一区| 亚洲先锋成人| 欧美午夜女人视频在线| 一区二区三区国产| 亚洲男人的天堂在线aⅴ视频| 国产精品成人免费精品自在线观看| 亚洲日本欧美天堂|