栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

inet

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

inet

PCSTR WSAAPI inet_ntop(
  [in]  INT        Family,
  [in]  const VOID *pAddr,
  [out] PSTR       pStringBuf,
  [in]  size_t     StringBufSize
);

InetNtop功能用于将IPv4或IPv6 Internet网络地址转换为Internet标准格式的字符串。这个函数的ANSI版本是inet_ntop。

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

InetPton函数将IPv4或IPv6 Internet网络地址的标准文本表示形式转换为二进制数字形式。该函数的ANSI版本是inet_pton。

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。

header ws2tcpip.h

lib         ws2_32.lib

DLL      ws2_32.dll

示例

#include 
#include 

#pragma comment(lib,ws2_32.lib)

int main()
{
    char *ipv6 = "2409:8a1e:6a62:e440:4f:bbe7:a27e:28e8";
    struct in6_addr ip6;
    char test[64] = {0};
    inet_pton(AF_INET6, ipv6, &ip6);

    printf("%x-%x-%x-%xn", ip6.__u6_addr.__u6_addr32[0], ip6.__u6_addr.__u6_addr32[1], ip6.__u6_addr.__u6_addr32[2], ip6.__u6_addr.__u6_addr32[3]);
    // ip6.s_addr = 0x00001e8a;

    inet_ntop(AF_INET6, &ip6, test, 64);
    printf("test:%sn", test);

    char *ipv4 = "192.168.1.1";
    struct in_addr ip4;
    inet_pton(AF_INET, ipv4, &ip4);
    printf("%xn", ip4.s_addr);

    return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/656218.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号