判断是否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 ...
随机推荐
- WPF整理-自定义一个扩展标记(custom markup extension)
"Markup extensions are used to extend the capabilities of XAML, by providing declarativeoperati ...
- 简单查询(select)
在数据库中,字符串进行运算时,会将字符串内容转化为数字进行运算 查询语法:select 列 from 表 where 条件 order by 排序 asc:升序 ...
- x86指令集同频性能提升
x86近5000条指令,迄今为止最复杂的指令集.这里不研究CISC & RISC,也不考虑process制程变化,主要是看最近几代IA架构对于同频率下性能的提升. x86指令集nasm文档 h ...
- Request 、Response 与Server的使用
纯属记录总结,以下图片都是来自 ASP.NET笔记之 Request .Response 与Server的使用 Request Response Server 关于Server.MapPath 方法看 ...
- Assign an Elastic IP Address to Your Instance
By default, an instance in a nondefault VPC is not assigned a public IP address, and is private.You ...
- 事务处理-回滚(转账操作)(转自http://www.cnblogs.com/void-m/p/6143540.html)
JDBC事务处理-四大原则 原子性一致性隔离性持久性 第一步:实现转账操作 假设在账户中,盖伦有余额5000元,赵信有余额2000元, 盖伦要向赵信转账1000元. 1 2 3 4 5 6 7 8 9 ...
- 【javaweb学习】XML和约束模式
xml:可扩展标记语言,w3c组织发布的,用于保存有关系的数据,作为配置文件,描述程序模块之间的关系 <?xml version="1.0" encoding="g ...
- Magento学习第一课——目录结构介绍
Magento学习第一课--目录结构介绍 一.Magento为何强大 Magento是在Zend框架基础上建立起来的,这点保证了代码的安全性及稳定性.选择Zend的原因有很多,但是最基本的是因为zen ...
- web app 自适应方案总结 关键字 弹性布局之rem
关于rem,主要参考文档 1.腾讯ISUX (http://isux.tencent.com/web-app-rem.html) 2.http://www.w3cplus.com/css3/defin ...
- imx6 usb otg config 配置
imx6 usb的host和slave配置,配置之后,安装gadget模块,就能够在host和slave之间切换. 参考文档: i.MX 6Dual/6Quad Linux Reference Man ...