如何比较字符串形式的IP地址(ipv4与ipv6)
来源:互联网 发布:淘宝客招募令 编辑:程序博客网 时间:2024/05/05 23:41
在比较IP地址时我们需要考虑到同一个IP地址有不同的表示形式,特别是ipv6增加了缩略符” :: ”,不想自己进行分段并判断的话,可以考虑使用微软提供的inet_pton函数。该函数是对inet_addr的扩展,增加了对IPv6的支持。我们只要将对应的IP地址转换为整型(或字节数组)就可以完成IP地址的比较了。
#include <ws2tcpip.h>//比较两个IP地址,相同返回true,否则返回falsebool compareIPAddress( const char* address1, const char* address2 ){if( address1==NULL || NULL==address2 ){return false;}if( strstr(address1 ,"." )!=NULL && strstr(address2,".")!=NULL ){//IPv4IN_ADDR addr1;IN_ADDR addr2;inet_pton( AF_INET , address1 , &addr1 );inet_pton( AF_INET , address2 , &addr2 );if( addr1.s_addr==addr2.s_addr )return true;elsereturn false;}if( strstr(address1 ,":" )!=NULL && strstr(address2,":")!=NULL ){//IPv6IN6_ADDR addr1;IN6_ADDR addr2;inet_pton( AF_INET6 , address1 , &addr1 );inet_pton( AF_INET6 , address2 , &addr2 );bool unEqual = false;for(int i=0 ; i<8 ; i++ ){if( addr1.u.Word[i]!=addr2.u.Word[i] ){unEqual = true;break;}}if( unEqual )return false;elsereturn true;}return false;}
- 如何比较字符串形式的IP地址(ipv4与ipv6)
- IPV4与IPV6地址
- IPv4与IPv6地址
- IP地址(IPv4)/IPv6地址的正则表达式
- IP 地址的划分 IPV4 IPV6的配置
- ipv6的表示、ipv6与ipv4之间的转换、ipv6地址大小判定
- TCP/IP协议 之IPV4与IPV6的区别
- TCP-IP协议详解(4)地址耗尽危机(IPv4与IPv6地址)
- IPv4与IPv6的区别
- IPV4与IPV6的区别
- MAC地址,IP地址以及ipv4到ipv6演进
- NAT64下的IPV4地址合成IPV6
- Linux 接口地址的获取-暨获取本地IP地址(所有地址,包括IPv4,IPV6,MAC 地址)
- IPV4、IPV6 地址结构
- 什么是IP/IPv4/IPv6
- IP,IPV4,IPV6
- ipv4和ipv6比较
- ipv4 ipv6 原理与如何使用
- android 开发视频教程下载地址
- platform_device(平台设备)和platform_driver(平台驱动)及平台设备驱动工作原理
- AXIS2实现文件上转下载测试通过
- 解决document.form.submit()对象不支持此属性或方法
- Androd 搜索框的使用
- 如何比较字符串形式的IP地址(ipv4与ipv6)
- 求两个整数的最大值或最小值,不可以用大于号和小于号
- Entity FrameWork
- Servlet
- SMI对实时性的影响
- win7下设置系统音量
- 归并排序
- BLOB(1)
- 坐飞机注意事项