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

S.l.e!ep.¢%

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

inet_ntop(), inet_pton()

Posted on 2011-01-04 22:41 S.l.e!ep.¢% 閱讀(1974) 評論(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>
            国产一区二区精品| 欧美在线一级va免费观看| 在线看视频不卡| 黄色精品免费| 好吊妞**欧美| 美女精品自拍一二三四| 欧美国产国产综合| 一区二区三区欧美在线| 亚洲综合社区| 久久人人97超碰精品888| 男人的天堂亚洲在线| 欧美极品一区二区三区| 欧美喷潮久久久xxxxx| 国产精品综合av一区二区国产馆| 国模精品娜娜一二三区| 一本色道久久88亚洲综合88| 性欧美18~19sex高清播放| 欧美成人嫩草网站| 欧美激情精品久久久久久蜜臀| 国产精品亚洲а∨天堂免在线| 永久91嫩草亚洲精品人人| 亚洲欧美在线免费| 亚洲精品国精品久久99热| 亚洲精品小视频在线观看| 国产精品99久久久久久久vr| 久久久av水蜜桃| 99热这里只有精品8| 久久亚洲精选| 中文在线不卡视频| 欧美在线播放一区| 国产精品欧美日韩一区二区| 久久嫩草精品久久久精品| 亚洲欧美在线另类| 国产精品白丝黑袜喷水久久久| 在线精品视频免费观看| 亚洲精品免费电影| 好男人免费精品视频| 亚洲人www| 狠狠色综合色综合网络| aa级大片欧美三级| 亚洲第一主播视频| 亚洲网友自拍| 国产精品入口尤物| 亚洲福利小视频| 久久综合伊人| 亚洲免费观看高清在线观看| 亚洲大胆人体视频| 小嫩嫩精品导航| 激情综合色综合久久| 免费不卡在线观看| 国产精品网站在线播放| 亚洲精品一区在线观看| 欧美日韩国产成人精品| 亚洲午夜精品一区二区三区他趣| 亚洲日本久久| 亚洲电影免费| 久久成人羞羞网站| 在线观看日韩精品| 欧美一区二区三区视频免费| 国内偷自视频区视频综合| 一区二区三区导航| 亚洲性图久久| 欧美日韩一区在线播放| 香蕉久久一区二区不卡无毒影院| 欧美剧在线观看| 亚洲国产精品福利| 欧美日韩国产一中文字不卡| 欧美黄色一区二区| 国产精品高清一区二区三区| 午夜在线电影亚洲一区| 国产精品久久久对白| 99视频国产精品免费观看| 99精品99| 久久午夜国产精品| 欧美大秀在线观看| 亚洲日本一区二区三区| 男女精品视频| 亚洲美女av黄| 午夜精品国产| 国产日本欧美一区二区| 欧美二区在线看| 亚洲精品久久在线| 欧美日韩亚洲一区二区| 一区二区不卡在线视频 午夜欧美不卡'| 一道本一区二区| 国产精品成人一区二区| 亚洲欧美日韩国产一区二区| 欧美在线视频免费观看| 狠狠色伊人亚洲综合成人| 蜜臀久久久99精品久久久久久 | 亚洲一区制服诱惑| 亚洲国产日韩欧美综合久久| 亚洲一区免费视频| 久久久国产精品一区二区中文| 韩国v欧美v日本v亚洲v | 亚洲欧洲另类国产综合| 国产精品视频第一区| 亚洲欧美日韩专区| 欧美xart系列在线观看| 国产午夜精品全部视频播放| 亚洲免费播放| 亚洲人成网站在线观看播放| 欧美专区第一页| 欧美激情亚洲一区| 亚洲欧美日本国产有色| 欧美日韩成人一区二区三区| 亚洲网站视频福利| 欧美 日韩 国产 一区| 亚洲午夜精品久久| 国内精品视频在线播放| 欧美久久99| 欧美与欧洲交xxxx免费观看 | 一区二区三区欧美| 麻豆精品视频在线| aa亚洲婷婷| 免费观看成人| 亚洲欧美影院| 日韩视频一区二区三区在线播放免费观看| 欧美日韩综合在线免费观看| 亚洲精品九九| 久久婷婷影院| 黄网站色欧美视频| 国产精品久久久91| 欧美国产第一页| 欧美亚洲一区在线| 亚洲一区精彩视频| 最新中文字幕一区二区三区| 欧美有码在线观看视频| 国产精品女主播| 欧美亚洲在线观看| 亚洲一区二区伦理| 亚洲人成网站在线播| 欧美α欧美αv大片| 久久精品99国产精品酒店日本| 国产乱码精品一区二区三区不卡| 欧美成人三级在线| 亚洲精品乱码| 欧美成人一区在线| 美女成人午夜| 麻豆国产精品va在线观看不卡| 在线看不卡av| 激情六月婷婷综合| 韩国自拍一区| 影音先锋亚洲电影| 一区二区三区在线观看欧美| 国产三区二区一区久久 | 久久久久欧美精品| 亚洲黄色成人| 亚洲国产精品电影| 亚洲欧洲在线一区| 91久久夜色精品国产网站| 欧美寡妇偷汉性猛交| 欧美大片18| 亚洲福利在线视频| 亚洲另类一区二区| 在线综合亚洲| 久久久久久综合| 久久精品99无色码中文字幕| 欧美一区二区精品| 久久精品人人爽| 欧美.www| 亚洲精品一区二区三区福利 | 午夜精品国产精品大乳美女| 亚洲男人的天堂在线观看| 欧美一区二区三区在线视频| 久久国产精品久久久| 久久嫩草精品久久久久| 免费试看一区| 日韩一区二区电影网| 亚洲欧美精品一区| 久久中文精品| 欧美日韩第一区| 国产欧美日韩精品a在线观看| 国产日韩欧美在线播放不卡| 韩国一区电影| 一本综合精品| 久久亚洲私人国产精品va| 欧美激情一区二区三区不卡| 亚洲久色影视| 午夜日本精品| 欧美国产日韩二区| 国产欧美婷婷中文| 最新国产乱人伦偷精品免费网站| 一区二区电影免费观看| 久久av资源网| 日韩亚洲欧美综合| 久久av一区二区三区| 欧美精品一区二区三区视频 | 久久精品中文| 久久精品色图| 欧美日韩亚洲一区二区三区在线| 国产偷久久久精品专区| 亚洲国产欧美日韩精品| 午夜久久久久久| 女生裸体视频一区二区三区| 亚洲一区二区三区精品动漫| 久久综合久色欧美综合狠狠| 国产精品大全| 亚洲人成人一区二区三区| 欧美一区二区三区四区在线观看|