bool isIPV6Net(const std::string ip_v4, std::string& out_ip)
{
bool is_v6 = false; struct addrinfo* res0;
struct addrinfo hints;
struct addrinfo* res; memset(&hints, , sizeof(hints));
hints.ai_flags = ;
hints.ai_family = PF_UNSPEC;
hints.ai_socktype = SOCK_STREAM; int n = ;
if((n=getaddrinfo(ip_v4.c_str(), "http", &hints, &res0))!=)
{
printf("getaddrinfo error: %s\n",gai_strerror(n));
return false;
} struct sockaddr_in6* addr6;
struct sockaddr_in* addr;
char ipbuf[] = {'\0'}; for(res = res0; res; res = res->ai_next)
{
if(res->ai_family == AF_INET6)
{
addr6 =( struct sockaddr_in6*)res->ai_addr;
inet_ntop(AF_INET6, &addr6->sin6_addr, ipbuf, sizeof(ipbuf));
is_v6 = true;
}
else
{
addr =( struct sockaddr_in*)res->ai_addr;
inet_ntop(AF_INET, &addr->sin_addr, ipbuf, sizeof(ipbuf));
}
break;
}
out_ip = ipbuf;
return is_v6;
}

测试:

char ipv4[] = {, , , };
char ipv4_str_buf[INET_ADDRSTRLEN] = { };
const char *ipv4_str = inet_ntop(AF_INET, &ipv4, ipv4_str_buf, sizeof(ipv4_str_buf)); std::string out_ip;
bool is = isIPV6Net("64:ff9b::739f:62d", out_ip);

判断是否IPv6网络的更多相关文章

  1. iOS学习之判断是否有网络的方法

    在实际开发中, 会有这样一个需求: 用户在有网的状态下会直接从网络请求数据, 在没网的情况下直接从本地读取数据. 下边的方法可以判断是否有网络. - (BOOL)connectedToNetwork ...

  2. 判断GPS、网络是否开启

    判断GPS.网络是否开启 1.判断GPS打开与否,没有打开则打开GPS private void initGPS(Context context) { LocationManager location ...

  3. mono 判断系统的网络是否可用

    /**  * 判断系统的网络是否可用  * @return  */        private bool isNetworkConnected()        {            bool ...

  4. iOS 上线因iPv6被拒,查询服务器是否支持iPv6,mac设置iPv6网络,手机测试iPv6

    一. iOS----如何检查域名是否支持ipv6 iOS----------如何检查域名是否支持ipv6 1.检查你所用到的库,像af 3.0以上什么的(不用改),其他的库自己去搜下是否支持ipv6吧 ...

  5. App store 应用审核由于 IPv6 网络问题被拒的一点分析

    App store 应用审核由于 IPv6 网络问题被拒的一点分析   六月以后陆续有一些软件提交市场的时候被拒了,症状基本就是无法登陆啥的.我们公司的应用也未能幸免. 很多同学也想了不少办法,申诉. ...

  6. OpenWrt 路由器如何让 lan 口主机获得 ipv6 网络访问 -- 知乎

    本文转自知乎: OpenWrt 路由器如何让 lan 口主机获得 ipv6 网络访问? - mistforest的回答 - 知乎https://www.zhihu.com/question/29667 ...

  7. 探索 IPv6 网络

    目录 0x00 前言 0x01 探索 服务器配置 IPv6 地址 服务器部署网络代理 客户端配置网络代理 测试访问 IPv6 地址 给博客添加 IPv6 地址 0x00 前言 IPv4 地址枯竭的事情 ...

  8. 【Android-NetWork】 判断是否连接网络,判断网络连接方式

    如何判断Android是否连接网络? Java代码: ConnectivityManager conn = (ConnectivityManager) getSystemService(Activit ...

  9. 个人宽带如何开启IPv6网络访问

    IPv6是大势所趋,就在前段时间湖南联通发布公告,对家庭宽带提供 IPv6 地址,不再提供 IPv4地址,那本文就介绍 个人宽带如何开启 IPv6网络访问. 湖南联通停止向普通家庭宽带用户提供公网 I ...

随机推荐

  1. 去除DataTable中的重复数据

    有时需要从DataTable中抽取Distinct数据,遍历比较费劲,C#.NET中其实有更易用的方法,如下: string[] columnArray = { "columnName1&q ...

  2. cocos2dx中的ScrollView

    ScrollView由视窗区域(裁剪区域)和内容区域组成,内容区域叫innerContainer. 视窗区域范围:get/setContentSize 内容区域:get/setInnerContain ...

  3. 20155206赵飞技能获取经验,C语言学习感想与对JAVA的学习目标

    自己较强的技能获取经验. 1:实话实说我自己是没有哪个技能可以超过90%的人的,只有自认为做的还可以的一些事情,例如打篮球,office软件的应用,一百米跑.至于其他方面就是很平庸了. 2:经验主要有 ...

  4. php识别中文编码并自动转换为UTF-8

    原文地址:http://www.codefans.net/articles/1272.shtml php自动识别编码,若里面有中文的话,将其转换为UTF-8就最好了,因为中文在Gbk编辑情况情况下,有 ...

  5. sql执行

    一.提高sql执行效率---in与exist . where column in (select * from table where ...) . ...where exists (select ' ...

  6. QMap

    #include <QCoreApplication> #include<QMap> #include<QDebug> int main(int argc, cha ...

  7. jvm性能监控与故障处理工具

    jdk为我们提供了一系列的jvm性能监控和故障处理工具,在这里根据学习进度进行整理记录.便于之后查阅 1.jps 虚拟机进程工具  类似于Linux系统中的ps命令,用于查看虚拟机进程,常用的有以下功 ...

  8. iOS JavaScriptCore与H5交互时出现异常提示

    在利用JavaScriptCore与H5交互时出现异常提示: This application is modifying the autolayout engine from a background ...

  9. SpringMVC操作指南-登录功能与请求过滤

    [1] Source http://code.taobao.org/p/LearningJavaEE/src/LearningSpringMVC005%20-%20Login%20and%20Filt ...

  10. 上下箭头选中 选项事件 JS

    //上下键 选择事件 searchBackgroud 为样式,只做标记,无实质样式,因为和其他样式不兼容,只能添加CSS $(document).keydown(function (event) { ...