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

S.l.e!ep.¢%

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

inet_ntop(), inet_pton()

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

inet_ntop(), inet_pton()

Linux/uClinux 2008-11-18 14:50:06 閱讀463 評論0 ??字號: ? 訂閱

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>
            久久最新视频| 一本色道婷婷久久欧美| 午夜电影亚洲| 国产亚洲福利社区一区| 久久精品国产亚洲一区二区三区| 一本色道久久综合狠狠躁篇的优点 | 亚洲一区二三| 国产日韩一区二区三区在线| 久久久久久久999精品视频| 久久久水蜜桃| 一本一本久久| 亚洲一区观看| 亚洲电影av在线| 亚洲人成久久| 国产精品久久久久久模特| 欧美一区在线直播| 久久亚洲春色中文字幕| 一区二区三区国产在线| 亚洲欧美另类在线| 亚洲国产电影| 亚洲午夜三级在线| 亚洲第一色在线| 99在线视频精品| 国产综合香蕉五月婷在线| 亚洲国产精品成人久久综合一区 | 一区二区高清视频在线观看| 韩日视频一区| 日韩一区二区电影网| 国产一区二区三区黄| 亚洲精选成人| 国内偷自视频区视频综合| 亚洲国产免费看| 国产专区欧美专区| 一本久道久久久| 亚洲福利视频在线| 亚洲在线视频观看| 亚洲免费观看在线观看| 亚洲欧美经典视频| 9久re热视频在线精品| 欧美在线视频全部完| 一区二区日韩欧美| 久久中文字幕一区| 久久不射中文字幕| 国产精品qvod| 亚洲理论在线| 亚洲精品久久在线| 久久九九国产| 久久久久久一区二区| 国产精品av久久久久久麻豆网| 国产精品久久久91| 亚洲日本激情| 亚洲国产va精品久久久不卡综合| 亚洲欧美日韩电影| 亚洲欧美日韩在线高清直播| 欧美福利专区| 欧美激情精品久久久久久变态| 国内伊人久久久久久网站视频 | 亚洲手机成人高清视频| 一区二区三区国产在线观看| 欧美大片第1页| 欧美成年人视频网站| 韩国成人精品a∨在线观看| 亚洲一区三区电影在线观看| 亚洲中字在线| 国产精品久久久久久久久搜平片 | 久久综合色影院| 激情综合色丁香一区二区| 欧美在线啊v一区| 久久精品一区中文字幕| 国产午夜精品视频| 欧美在线国产| 美脚丝袜一区二区三区在线观看| 国产一区日韩二区欧美三区| 久久激情久久| 欧美a级片网| 亚洲精品日产精品乱码不卡| 欧美黄色aaaa| 99视频精品全部免费在线| 亚洲一区久久久| 国产欧美成人| 久久久久亚洲综合| 亚洲国产精品va| 正在播放欧美一区| 国产精品最新自拍| 久久国产精品久久久久久| 女主播福利一区| 一区二区三区欧美成人| 国产精品美女久久久免费| 欧美亚洲日本网站| 欧美大秀在线观看| 一区二区三区久久| 国产日韩一区欧美| 欧美国产三区| 亚洲欧美在线网| 欧美成在线观看| 亚洲一区二区三区在线| 国产一区在线看| 欧美国产视频在线| 在线一区二区三区四区| 久久综合九色综合欧美狠狠| 99国产精品99久久久久久粉嫩| 国产精品久久久久毛片软件| 久久久久久久久久看片| 日韩一级精品视频在线观看| 久久国产精品网站| 99在线热播精品免费| 国产一区在线视频| 欧美日韩一区二区三区在线看| 欧美一区1区三区3区公司| 亚洲韩国精品一区| 久久久久综合| 亚洲性图久久| 91久久精品网| 国产日韩亚洲| 欧美午夜宅男影院在线观看| 麻豆成人91精品二区三区| 一二美女精品欧洲| 伊人精品久久久久7777| 欧美三级午夜理伦三级中文幕| 久久久视频精品| 亚洲一级一区| 亚洲黄色免费网站| 欧美一区=区| 亚洲免费在线视频一区 二区| 国产精品免费看| 亚洲一区精彩视频| 亚洲精品久久在线| 免费在线观看成人av| 午夜精品一区二区三区在线| 极品尤物一区二区三区| 国产精品久久久久久户外露出| 久热国产精品视频| 性感少妇一区| 一本色道久久综合| 艳女tv在线观看国产一区| 免费观看一级特黄欧美大片| 午夜视频在线观看一区| 中文亚洲免费| 亚洲激情另类| 黄色精品一二区| 国产美女在线精品免费观看| 欧美啪啪一区| 欧美成人首页| 欧美激情综合网| 欧美成人一区二区三区片免费 | 久久女同精品一区二区| 亚洲女人天堂成人av在线| 亚洲一区区二区| 一区二区冒白浆视频| 亚洲人精品午夜| 在线播放豆国产99亚洲| 黄色在线一区| 亚洲国产三级在线| 伊人久久大香线蕉av超碰演员| 国产美女精品一区二区三区| 国产精品久久久久久久久久尿| 另类酷文…触手系列精品集v1小说| 久久夜色精品亚洲噜噜国产mv| 久久丁香综合五月国产三级网站| 欧美亚洲一区二区在线| 欧美亚洲免费电影| 亚洲欧美国产高清va在线播| 欧美一区二区高清在线观看| 欧美亚洲免费在线| 久久一二三区| 欧美电影在线免费观看网站| 欧美激情亚洲激情| 欧美视频在线观看一区| 国产精品视频不卡| 国产精品素人视频| 亚洲国产1区| 洋洋av久久久久久久一区| 中文一区二区| 午夜精品一区二区三区在线视| 久久久久久网| 欧美激情在线播放| 亚洲精品一区二区三区樱花| 在线视频免费在线观看一区二区| 香蕉久久夜色| 美女图片一区二区| 欧美日韩在线三级| 国产亚洲成av人片在线观看桃| 韩国一区电影| 一区二区欧美在线| 久久免费的精品国产v∧| 欧美激情一二三区| 欧美一级成年大片在线观看| 久久婷婷综合激情| 国产精品对白刺激久久久| 国产午夜精品福利| 亚洲天堂免费在线观看视频| 欧美在线免费| 亚洲国产视频一区| 欧美一区二区三区啪啪| 久久在线免费观看| 国产精品免费电影| 日韩视频精品在线| 久久只精品国产| 亚洲综合三区| 亚洲国产欧美一区二区三区丁香婷|