IP转码方法归类.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
IP转码方法归类

IP地址格式转换问题及方法归类 Linux 下将点分制IP地址转成无符号长整型 知识背景: 210.25.132.181属于IP地址的ASCII表示法,也就是字符串形式。英语叫做IPv4 numbers-and-dots notation。 如果把210.25.132.181转换为整数形式,是座机电话号码33,这个就是整数形式的IP地址。英语叫做binary data。(其实binary是二进制的意思) 函数inet_pton和inet_ntop这2个函数能够处理ipv4和ipv6int inet_pton int af, const char *src, void *dst ; 函数说明: 这个函数转换字符串到网络地址,第一个参数af是地址族,转换后存在dst中 inet_pton 是inet_addr的扩展,支持的多地址族有下列: AF_INET:src为指向字符型的地址,即ASCII的地址的首地址(ddd.ddd.ddd.ddd格式的),函数将该地址转换为in_addr的结构体,并复制在*dst中 AF_INET6:src为指向IPv6的地址,,函数将该地址转换为in6_addr的结构体,并复制在*dst中 如果函数出错将返回一个负值,并将errno设置为EAFNOSUPPORT,如果参数af指定的地址族和src格式不对,函数将返回0。 函数inet_ntop进行相反的转换 原型const char *inet_ntop int af, const void *src, char *dst, socklen_t cnt ; 函数说明: 这个函数转换网络二进制结构到ASCII类型的地址,参数的作用和上面相同,只是多了一个参数socklen_t cnt,他是所指向缓存区dst的大小,主要为避免溢出,如果缓存区太小无法存储地址的值,则返回一个空指针,并将errno置为ENOSPC IPv4下调用方法: inet_pton AF_INET, 192.168.1.1, void* s ; //struct in_addr s; // IPv4地址结构体 //将点分十进制地址填充到in_addr结构中 IPv6下将二进制IP地址转换为字符串方法 inet_ntop AF_INET6, void* p- ip_src- s6_addr,strip,sizeof strip ; //p为IPv6头部指针,ip_src为IPv6头部中的源IP地址,strip为char数组,用于存放转换好的ASCII类型IPv6地址 //转换好后输出strip类似于:2001:470:23:13::6等标准IPv6地址书写格式 ConvertIptoLongInt string strIpAddr string szReturn ; unsigned long lintTemp; struct in_addr addr; char cstr[20]; strcpy cstr, strIpAddr.c_str ; lintTemp inet_addr cstr ; //以下是对IP地址进行错误判断,查看是否是非法IP地址格式 if -1 lintTemp printf inet_addr return -1/n ; return szReturn; else sprintf cstr, %ld, lintTemp ; string szResult cstr; return string cstr ; Windows下C++网络字节顺序转换函数、ip格式转换函数 inet_addr ,将IP地址从点数格式转换成无符号长整型。 inet_ntoa ,将网络地址转换成“.”点隔的字符串格式。 注意的是inet_ntoa 将结构体in-addr作为一 个参数,不是长整形。同样需要注意的是它返回的是一个指向一个字符的 指针。它是一个由inet_ntoa 控制的静态的固定的指针,所以每次调用 inet_ntoa ,它就将覆盖上次调用时所得的IP地址。 strcpy cstr, strIpAddr.c_str ;这个函数。 一些函数原型: int inet_aton const char *cp, struct in_addr *inp ; in_addr_t inet_addr const char *cp ; in_addr_t inet_network const char *cp ; int inet_pton int af, const char *src, void *dst ; const char *inet_ntop int af, const void *src, char *ds

文档评论(0)

peain + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档