• <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>

            S.l.e!ep.¢%

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

            安全轉換地址

            Posted on 2010-12-31 17:12 S.l.e!ep.¢% 閱讀(262) 評論(0)  編輯 收藏 引用 所屬分類: Unix

            inet_ntop

              Linux下inet_pton和inet_ntop這2個IP地址轉換函數,可以在將IP地址在“點分十進制”和“整數”之間轉換。而且,這2個函數能夠處理ipv4和ipv6。算是比較新的函數了。
              inet_pton函數原型如下[將“點分十進制” -> “整數”]
              #include <sys/types.h>
              #include <sys/socket.h>
              #include <arpa/inet.h>
              int inet_pton(int af, const char *src, void *dst);
              這個函數轉換字符串到網絡地址,第一個參數af是地址族,轉換后存在dst中。
              inet_pton 是inet_addr的擴展,支持的多地址族有下列:
              af = AF_INET
              src為指向字符型的地址,即ASCII的地址的首地址(ddd.ddd.ddd.ddd格式的),函數將該地址
              轉換為in_addr的結構體,并復制在*dst中。
              af =AF_INET6
              src若為指向IPV6的地址,函數將該地址轉換為in6_addr的結構體,并復制在*dst中。
              如果函數出錯將返回一個負值,并將errno設置為EAFNOSUPPORT,如果參數af指定的地址族和src格式不對,函數將返回0。
              inet_ntop函數原型如下[將“點分十進制” -> “整數”]
              #include <sys/types.h>
              #include <sys/socket.h>
              #include <arpa/inet.h>
              const char *inet_ntop(int af, const void *src, char *dst, socklen_t cnt);
              這個函數轉換網絡二進制結構到ASCII類型的地址,參數的作用和上面相同,只是多了一個參數socklen_t cnt,他是所指向緩存區dst的大小,避免溢出,如果緩存區太小無法存儲地址的值,則返回一個空指針,并將errno置為ENOSPC。
              下面是例程:
              #include <stdio.h>
              #include <stdlib.h>
              #include <string.h>
              #include <unistd.h>
              #include <sys/socket.h>
              #include <netinet/in.h>
              int main (void)
              {
              char IPdotdec[20]; //存放點分十進制IP地址
              struct in_addr s; // IPv4地址結構體
              // 輸入IP地址
              printf("Please input IP address: ");
              scanf("%s", &IPdotdec);
              // 轉換
              inet_pton(AF_INET, IPdotdec, (void *)&s);
              printf("inet_pton: 0x%x\n", s.s_addr); // 注意得到的字節序
              // 反轉換
              inet_ntop(AF_INET, (void *)&s, IPdotdec, 16);
              printf("inet_ntop: %s\n", IPdotdec);
              }
            国内精品久久久久国产盗摄| 久久99精品久久久久久久久久| 国产亚州精品女人久久久久久 | 久久国产精品无码HDAV| 婷婷综合久久狠狠色99h| 午夜精品久久久久久影视riav| 亚洲伊人久久大香线蕉综合图片 | 麻豆亚洲AV永久无码精品久久| 久久天天躁狠狠躁夜夜avapp| 久久噜噜电影你懂的| 国产69精品久久久久观看软件| 久久国产热精品波多野结衣AV| 2020最新久久久视精品爱| 精品国产乱码久久久久久人妻| 国产精品99久久久久久猫咪| 久久精品国产亚洲av水果派| 亚洲午夜精品久久久久久浪潮 | 久久综合九色综合97_久久久| 亚洲一区精品伊人久久伊人| 国产精品日韩深夜福利久久 | 99热精品久久只有精品| 国内精品伊人久久久久AV影院| 久久国产福利免费| 久久久久久久久无码精品亚洲日韩 | 国产精品九九久久免费视频 | 亚洲中文久久精品无码| 亚洲欧洲中文日韩久久AV乱码| 国产一区二区精品久久凹凸 | 日韩精品久久无码人妻中文字幕| 久久综合九色综合欧美就去吻| 国产A级毛片久久久精品毛片| 一级做a爱片久久毛片| 91精品国产91久久久久久| 久久精品国产99国产电影网 | 久久99精品国产麻豆婷婷| 久久综合狠狠综合久久激情 | 久久青草国产手机看片福利盒子| 久久99精品国产一区二区三区| 久久精品中文字幕无码绿巨人| 亚洲国产精品无码久久| 97久久久久人妻精品专区|