判断是否IPv6网络
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网络的更多相关文章
- iOS学习之判断是否有网络的方法
在实际开发中, 会有这样一个需求: 用户在有网的状态下会直接从网络请求数据, 在没网的情况下直接从本地读取数据. 下边的方法可以判断是否有网络. - (BOOL)connectedToNetwork ...
- 判断GPS、网络是否开启
判断GPS.网络是否开启 1.判断GPS打开与否,没有打开则打开GPS private void initGPS(Context context) { LocationManager location ...
- mono 判断系统的网络是否可用
/** * 判断系统的网络是否可用 * @return */ private bool isNetworkConnected() { bool ...
- iOS 上线因iPv6被拒,查询服务器是否支持iPv6,mac设置iPv6网络,手机测试iPv6
一. iOS----如何检查域名是否支持ipv6 iOS----------如何检查域名是否支持ipv6 1.检查你所用到的库,像af 3.0以上什么的(不用改),其他的库自己去搜下是否支持ipv6吧 ...
- App store 应用审核由于 IPv6 网络问题被拒的一点分析
App store 应用审核由于 IPv6 网络问题被拒的一点分析 六月以后陆续有一些软件提交市场的时候被拒了,症状基本就是无法登陆啥的.我们公司的应用也未能幸免. 很多同学也想了不少办法,申诉. ...
- OpenWrt 路由器如何让 lan 口主机获得 ipv6 网络访问 -- 知乎
本文转自知乎: OpenWrt 路由器如何让 lan 口主机获得 ipv6 网络访问? - mistforest的回答 - 知乎https://www.zhihu.com/question/29667 ...
- 探索 IPv6 网络
目录 0x00 前言 0x01 探索 服务器配置 IPv6 地址 服务器部署网络代理 客户端配置网络代理 测试访问 IPv6 地址 给博客添加 IPv6 地址 0x00 前言 IPv4 地址枯竭的事情 ...
- 【Android-NetWork】 判断是否连接网络,判断网络连接方式
如何判断Android是否连接网络? Java代码: ConnectivityManager conn = (ConnectivityManager) getSystemService(Activit ...
- 个人宽带如何开启IPv6网络访问
IPv6是大势所趋,就在前段时间湖南联通发布公告,对家庭宽带提供 IPv6 地址,不再提供 IPv4地址,那本文就介绍 个人宽带如何开启 IPv6网络访问. 湖南联通停止向普通家庭宽带用户提供公网 I ...
随机推荐
- JS for循环 闭包
对于for循环的闭包问题的理解,认为需要理解函数中的变量的作用域链的概念 另外提及下变量提升的概念 如下例子: var ar = [];for(var i=1:i<10; i++){ ar[i] ...
- MySQL触发器使用详解
MySQL包含对触发器的支持.触发器是一种与表操作有关的数据库对象,当触发器所在表上出现指定事件时,将调用该对象,即表的操作事件触发表上的触发器的执行. 创建触发器在MySQL中,创建触发器语法如下: ...
- 带你玩转JavaWeb开发之四 -如何用JS做登录注册页面校验
今日内容 使用JQuery完成页面定时弹出广告 使用JQuery完成表格的隔行换色 使用JQuery完成复选框的全选效果 使用JQuery完成省市联动效果 使用JQuery完成下列列表左右选择 使用J ...
- iOS,一行代码进行RSA、DES 、AES、MD5加密、解密
本文为投稿文章,作者:Flying_Einstein(简书) 加密的Demo,欢迎下载 JAVA端的加密解密,读者可以看我同事的这篇文章:http://www.jianshu.com/p/98569e ...
- 自动化测试selenium----css选择器总结
选择器 示例 描述 * * 匹配任何元素 element DIV 标签选择器,匹配所有使用DIV标签的元素 .class .tips class选择器,匹配所有class属性中包含info的元素 ...
- dup和dup2用法小结
今天和同学探讨了一下关于重定向输出到文件的问题,其中需要用到dup和dup2函数,因此来小小的总结一下. 首先来man一下: dup直接返回一个新的描述符和原来的描述符一样代表同一个资源,描述符的值就 ...
- jquery 操作大全
1添加属性 $("#mydiv").attr("pro1","this is val"); $('.img1').attr('src', ' ...
- imx6 usb otg config 配置
imx6 usb的host和slave配置,配置之后,安装gadget模块,就能够在host和slave之间切换. 参考文档: i.MX 6Dual/6Quad Linux Reference Man ...
- Python资源大全
The Python Tutorial (Python 2.7.11) 的中文翻译版本.Python Tutorial 为初学 Python 必备官方教程,本教程适用于 Python 2.7.X 系列 ...
- kdiff3的主窗口说明 Base Local Remote 分别代表什么分支