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

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.¢% 閱讀(1971) 評論(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>
            亚洲自拍偷拍一区| 久久精品99国产精品酒店日本| 老色鬼精品视频在线观看播放| 国内精品视频666| 久久三级视频| 欧美成人影音| 亚洲一级电影| 亚洲午夜激情网页| 国产亚洲综合性久久久影院| 久久在线91| 欧美激情中文字幕一区二区| 在线亚洲一区| 性欧美精品高清| 亚洲欧洲另类| 亚洲午夜精品| 亚洲福利在线观看| 一本大道久久a久久精二百| 国产精品免费在线| 免费成人黄色片| 欧美日韩国产成人在线免费 | 久久国产精品久久w女人spa| 亚洲国产mv| 亚洲一区二区成人| 亚洲第一综合天堂另类专| 日韩亚洲一区二区| 伊人成综合网伊人222| 亚洲美女一区| 亚洲盗摄视频| 亚洲直播在线一区| 日韩视频―中文字幕| 欧美亚洲免费电影| 在线午夜精品| 久久综合九色综合网站| 欧美亚洲免费电影| 欧美福利在线观看| 久久久久久久久蜜桃| 欧美日韩精品免费 | 日韩一区二区久久| 性欧美18~19sex高清播放| 最新中文字幕亚洲| 久久九九全国免费精品观看| 亚洲在线电影| 欧美黑人多人双交| 美女主播精品视频一二三四| 国产精品裸体一区二区三区| 亚洲国产日韩在线一区模特| 国产视频欧美| 亚洲在线第一页| 99综合在线| 免费在线看一区| 裸体丰满少妇做受久久99精品| 国产精品国产三级国产专播品爱网 | 欧美激情网站在线观看| 久久久久免费| 国产一区二区三区的电影| 一区二区日韩欧美| 中文日韩电影网站| 欧美涩涩网站| 日韩亚洲一区二区| 这里只有精品丝袜| 欧美激情一区二区在线| 亚洲国产精品久久91精品| 亚洲第一在线| 鲁大师影院一区二区三区| 另类综合日韩欧美亚洲| 国外成人性视频| 久久福利一区| 免费成人高清| 亚洲日本成人| 欧美国产一区二区在线观看 | 一区二区三区四区国产| 欧美噜噜久久久xxx| 亚洲片区在线| 亚洲午夜在线视频| 国产精品久久久久久超碰| 亚洲一区二区成人在线观看| 亚洲欧美中文日韩在线| 国产伦精品一区二区三区高清版| 亚洲色图制服丝袜| 欧美在线国产精品| 伊人春色精品| 欧美激情视频网站| 一区二区日韩| 久久久久久久久一区二区| 在线观看的日韩av| 欧美精品v日韩精品v国产精品| 日韩一级不卡| 久久久福利视频| 亚洲国产精品成人综合色在线婷婷| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲国产成人av| 午夜精品成人在线| 黑人操亚洲美女惩罚| 欧美国产日韩精品免费观看| 一本色道久久精品| 久久免费少妇高潮久久精品99| 亚洲国产日韩欧美在线图片| 欧美日韩精品在线播放| 亚洲无限av看| 欧美黄色影院| 欧美在线一区二区| 亚洲靠逼com| 国产日韩欧美精品一区| 欧美xart系列在线观看| 亚洲一区在线视频| 欧美激情一级片一区二区| 亚洲欧美综合国产精品一区| 红杏aⅴ成人免费视频| 欧美日韩精品一区视频| 久久久蜜桃精品| 亚洲图片自拍偷拍| 欧美二区不卡| 久久精品中文字幕一区| 中文一区二区在线观看| 在线播放亚洲一区| 国产精品一区二区三区四区五区| 欧美91视频| 久久久久久久999| 亚洲一区二区在线| 亚洲精品视频一区| 欧美电影电视剧在线观看| 久久不射中文字幕| 亚洲一级黄色| 一本色道久久综合亚洲精品按摩 | 国产精品一区二区三区观看| 欧美成人情趣视频| 久久精品视频亚洲| 午夜精品理论片| 一区二区三区久久网| 亚洲精品乱码久久久久久蜜桃麻豆 | 亚洲一区二区三区在线视频| 亚洲黄色片网站| 国产日韩亚洲欧美精品| 国产精品美女久久久久久免费 | 噜噜噜噜噜久久久久久91| 性做久久久久久免费观看欧美| 夜夜嗨av色综合久久久综合网| 欧美国产日本在线| 欧美不卡高清| 欧美国产免费| 欧美激情一区二区三区在线| 久久免费黄色| 欧美91大片| 欧美电影专区| 欧美激情一区二区三区| 欧美第一黄色网| 亚洲国产精品电影| 亚洲国产精品传媒在线观看 | 亚洲国产日韩欧美一区二区三区| 欧美.www| 91久久在线播放| 亚洲剧情一区二区| 在线亚洲成人| 欧美一区国产二区| 久久久久久夜| 欧美成人午夜影院| 欧美久久久久久| 国产精品美女在线| 国产在线欧美日韩| 1024成人| 一区二区精品国产| 午夜影院日韩| 老司机午夜精品| 亚洲国产综合在线| 一本久久精品一区二区| 午夜精品免费| 久热这里只精品99re8久| 欧美精品色综合| 国产精品日韩精品| 尤物yw午夜国产精品视频明星| 亚洲人成网站影音先锋播放| 一本色道久久综合精品竹菊| 亚洲欧美日韩精品久久久| 久久精品亚洲一区二区三区浴池| 老司机午夜精品视频在线观看| 欧美国产国产综合| 夜夜嗨av一区二区三区网站四季av| 中文成人激情娱乐网| 久久国产加勒比精品无码| 欧美电影免费观看| 国产精品一区二区欧美| 亚洲国产你懂的| 亚洲欧美国产精品va在线观看 | 亚洲精品在线观看免费| 欧美一级免费视频| 亚洲高清资源综合久久精品| 国产精品99久久不卡二区| 久久亚洲私人国产精品va媚药| 欧美视频官网| 亚洲国产老妈| 欧美在线视频免费| 亚洲区一区二区三区| 久久av老司机精品网站导航| 欧美日韩另类在线| 在线欧美日韩国产| 欧美一区二区三区四区高清| 亚洲毛片一区二区| 另类图片综合电影| 国产在线一区二区三区四区| 亚洲一区制服诱惑|