ipv6 地址 c语言处理,ipv6地址处置(2)
当前位置:我的异常网» C语言 » ipv6地址处置
ipv6地址处置(2)
www.myexceptions.net 网友分享于:2014-01-17 浏览:37次
#include
char ipv60[]="2001:0DB8:0000:0000:0000:0000:1428:0000";
char ipv61[]="1040::1";
char ipv62[]="fe80::20c:29ff:fe6b:2516";
char ipv63[]="::ffff:c0a8:5909";
unsigned char ip_v6[16];
void show(char *a) {
int i;
printf("%-39s=>",a);
for (i=0;i<16;i++) printf("%02x ",ip_v6[i]);
printf("\n");
}
void inet_addr6(char *a) {
char *p;
int n,i,r,k,j;
short s;
k=0;
p=a;
while (1) {
if (*p==':') k++;
p++;
if (*p==0) break;
}
if (a[0]==':') k--;
i=0;
p=a;
while (1) {
r=sscanf(p,"%hx%n",&s,&n);
if (1==r) {
ip_v6[i]=*((unsigned char *)&s+1);
ip_v6[i+1]=*((unsigned char *)(&s));
i+=2;
if (i>=16) break;
p+=n;
} else if (0==r) {
if (p[0]==':') {
if (p[1]==':') {
for (j=0;j
i+=(8-k)*2;
if (i>=16) break;
p+=2;
} else {
p++;
}
} else {
printf("Format Error [%s]!\n",a);
}
} else break;
}
}
int main() {
inet_addr6(ipv60);show(ipv60);
inet_addr6(ipv61);show(ipv61);
inet_addr6(ipv62);show(ipv62);
inet_addr6(ipv63);show(ipv63);
return 0;
}
//2001:0DB8:0000:0000:0000:0000:1428:0000=>20 01 0d b8 00 00 00 00 00 00 00 00 14 28 00 00
//1040::1 =>10 40 00 00 00 00 00 00 00 00 00 00 00 00 00 01
//fe80::20c:29ff:fe6b:2516 =>fe 80 00 00 00 00 00 00 02 0c 29 ff fe 6b 25 16
//::ffff:c0a8:5909 =>00 00 00 00 00 00 00 00 00 00 ff ff c0 a8 59 09
//
文章评论
ipv6 地址 c语言处理,ipv6地址处置(2)相关推荐
- c语言检测邮箱地址,C语言实现电子邮件地址验证程序
我们最经常遇到的验证,就是电子邮件地址验证.网站上常见.各种网页脚本也都常用"正则表达式"(regular expression)对我们输入的电子邮件地址进行验证,判断是否合法.有 ...
- c语言检测邮箱地址,c语言实现邮箱地址验证
rfc中是这样定义邮箱格式的:html address = mailbox ; one addressee / group ; named list group = phrase ":&qu ...
- c语言判断ipv6地址合法,判断IPv6地址合法性
在 头文件下有下列这些宏用于判断IPv6地址合法性 返回0代表true,返回非零值代表ipv6地址为非指定类型的的地址(false) intIN6_IS_ADDR_UNSPECIFIED(const ...
- 【计算机网络】网络层 : IPv6 协议 ( IPv6 数据包格式 | IPv6 地址表示 | IPv6 地址类型 | IPv4 与 IPv6 协议对比 | IPv4 -> IPv6 过渡策略 )
文章目录 一.IPv6 发展 二.IPv6 数据报格式 三.IPv6 和 IPv4 对比 四.IPv6 地址表示 五.IPv6 地址 类型 六.IPv4 向 IPv6 过渡策略 一.IPv6 发展 I ...
- centos ipv6 网卡_CentOS 6配置IPv6地址
编辑网络配置信息文件. vim /etc/sysconfig/network 启用IPv6支持. 编辑网卡配置文件. vim /etc/sysconfig/network-scripts/ifcfg- ...
- IPv4地址和IPv6地址的比较,IPv6地址及其表示
IPv4地址和IPv6地址的比较,IPv6地址及其表示 TCP/IP协议是互联网发展的基石,其中IP是网络层协议,规范互联网中分组信息的交换和选路.目前采用的IPv4协议地址长度为32位,总数约43亿 ...
- ipv4转换ipv6工具_IPv4与IPv6的区别,不仅仅是地址变长而已
IP地址是分配给上网设备的数字标签,是每一个网络和设备的逻辑地址,我们在访问网站.发送文件或传输任何报文都会打包成一个个数据包,然后按照IP地址,传送数据包.我们上网时在浏览器里输入的网站是方便记忆的 ...
- IP地址,IPV4与IPV6
目录 1.IP地址 2.IPV4 2.1.IPv4数据报格式 2.2.网络号和主机号 2.3.IP地址的分类 2.4.子网划分与子网掩码 2.4.1.子网划分 2.4.2子网掩码 2.5.网络地址转换 ...
- 中国A类IP地址小调查以及IPv6展望
前言 我今天在学校的机房里面学习 TCP/IP + Linux.我在Linux中敲下如下几行命令: ifconfig :用来确定我的ip,发现是59.71.137.69.惊讶的发现:这是一个公有的A类 ...
最新文章
- oracle存储过程多条件判断,oracle存储过程条件替空的判断(2)
- mac iTunes启动失败,声称iTunes文件夹被锁定
- 星巴克“啡快”宣布接入支付宝、口碑等阿里应用
- 填坑-十万个为什么?(18)
- 带括号多项式版四则运算
- mysql limit索引变_Mysql limit 优化,百万至千万级快速分页 复合索引的引用并应用于轻量级框架...
- Android studio 不能识别(显示?????)部分手机的解决办法
- Web表单提交之disabled问题
- 教你用磁盘分区软件无损扩容c盘的方法
- Python之scipy安装
- 关于5月份BCH硬分叉,这些你应该知道
- Oracle数据库基础(二)
- WDCP是什么 关于WDCP的详细介绍
- 【数学与算法】隐函数定义,以及隐函数求导公式
- 基于C#实现的零食售卖管理系统,支持称重,扫码,打印,彩虹兔零食售卖系统
- asp.net TextBox文本框背景透明+浅色背景文字提示
- 读取EXCEL数据到SAP函数重新封装为ZALSM_EXCEL_TO_INTERNAL_TABLE(解决单元格至多上传50字符 单次至多上传9999行 只能读取单个SHEET)
- Android 上关于设备唯一标识的调研
- H3C交换机console登录配置
- python实现千千音乐mp3下载
热门文章
- 【loadrunner】记录loadrunner12回放脚本的报错(400,401)
- html5 读取剪切板,Html5剪切板功能的实现
- python爬虫框架论文开题报告范文_仿今日头条新闻爬虫设计毕业论文+设计源码+开题报告...
- 什么是coreauthd,为什么它可以在Mac上运行?
- Java做抽卡_游戏王:无限抽卡怎么做?拥有这一套组合你就能抽完整个卡组!...
- 第十集 爱在天路唐古拉,青藏梦止长江源
- 华为手机关闭蓝牙开发搜索_华为手机这3个功能必须关闭,宜早不宜迟,否则手机很容易变卡...
- vue脚手架项目部署到服务器,vue脚手架项目发布
- 20W字纯手打Java并发学习笔记,助力你金三银四,决战春招,必进大厂
- 小程序WeUI使用教程(简单易懂)