ipv6地址累加函数
#include <stdio.h>
#include <arpa/inet.h> int main()
{
int i;
int ret;
struct in6_addr addr6;
unsigned long ul1, ul2, ul3, ul0;
char str[INET6_ADDRSTRLEN] = {}; ret = inet_pton(AF_INET6, "ff02::12", &addr6);
if (ret != ) {
perror("inet_pton()");
return -;
} for (i = ; i < ; i++) {
ul3 = addr6.s6_addr32[];
ul2 = addr6.s6_addr32[];
ul1 = addr6.s6_addr32[];
ul0 = addr6.s6_addr32[]; ul3 = ntohl(ul3)+;
if (ul3) {
goto u3;
}
ul2 = ntohl(ul2)+;
if (ul2) {
goto u2;
}
ul1 = ntohl(ul1)+;
if (ul1) {
goto u1;
}
ul0 = ntohl(ul0)+; addr6.s6_addr32[] = htonl(ul0);
u1:
addr6.s6_addr32[] = htonl(ul1);
u2:
addr6.s6_addr32[] = htonl(ul2);
u3:
addr6.s6_addr32[] = htonl(ul3); if ((inet_ntop(AF_INET6, &addr6, str, INET6_ADDRSTRLEN)) != NULL) {
printf("%s\n", str);
} else {
fprintf(stderr, "inet_ntop() error\n");
return -;
}
} return ;
}
ipv6地址累加函数的更多相关文章
- 【Atheros】pktgen的ipv6地址处理函数参考及ipv6基本知识
pktgen有很多函数可以作为很好的网络相关的工具函数,这里列出ipv6中1:0:0:0:0:0:0:1和1::1这两种地址形式相互转化的工具函数. 第一个函数,用于把一个1:0:0:0:0:0:0: ...
- 3. IP地址转换函数
一.字符串表示的IP地址需要被转化为整数(二进制数)方能使用 IPv4地址:点分十进制字符串 IPv6地址:十六进制字符串 有时(如记录日志),我们则要把整数(二进制数)表示的IP地址转化为可读的字符 ...
- awk函数实现将简化IPV6地址补全
在用awk处理文本时,有些场景需要将简化的IPV6地址补充成完整的IPV6地址,下边函数可简单实现: IPV6地址补全函数 # ipv6地址补全函数 function compipv6(orig_ad ...
- 刚写好的读取多网卡IP地址的函数
虽然现在一机多网卡已经很普遍(像Notebook带有线.无线.蓝芽等),但是找一个现成的能够一次过读出所有网卡IP地址的函数实在是难,无奈自己写了一个,好东西谁用谁知道. //uses WinSock ...
- UNIX网络编程——socket概述和字节序、地址转换函数
一.什么是socket socket可以看成是用户进程与内核网络协议栈的编程接口.socket不仅可以用于本机的进程间通信,还可以用于网络上不同主机的进程间通信. socket API是一层抽象的网络 ...
- 一种转换Ipv6地址的方法
原CSDN博客不再更新维护. 本文介绍了一种将char* 类型的Ipv6地址转换成BYTE(unsigned char)或者in6_addr类型的方法. 说明:使用时需要下载Ipv6++.lib和Ip ...
- 【网络编程一】主机字节序与网络字节序以及ip地址转换函数
在计算机设计之初,对内存中数据的处理也有不同的方式,(低位数据存储在低位地址处或者高位数据存储在低位地址处),然而,在通信的过程中(ISO/OSI模型和TCP/IP四层模型中),数据被一步步封装(然后 ...
- 地址转换函数:inet_aton & inet_ntoa & inet_addr和inet_pton & inet_ntop
在Unix网络编程中,我们常用到地址转换函数,它将ASCII字符串(如"206.62.226.33")与网络字节序的二进制值(这个值保存在套接口地址结构中)间进行地址的转换. 1. ...
- 校验IPv4和IPv6地址和URL地址
1.校验IPV4地址: function validateIp(obj) { var ip=$(obj).val(); var re=/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;// ...
随机推荐
- 跨年操作--new Date()
//时间在2017/12/31 17:00 --- 2018/1/1 06:00区间,提示用户无法操作公告. //time.js (function(){ var date = new Date(); ...
- Python+Appium自动化环境搭建
appium工作原理 appium 在android端工作流 client端也就是我们 test script是我们的webdriver测试脚本. 中间是起的Appium的服务,Appium在服务端起 ...
- linux安装jdk以及tomcat
一.卸载旧jdk 1.检测原OPENJDK版本 java -version 查看是否安装了jdk,并且是什么版本 2.进一步查看JDK信息 rpm -qa|grep java tzdata-java- ...
- 申请ssl证书报提示caa提示
申请ssl证书报下面提示caa提示,这和dns有关,换一组dns重新申请 send challenge err[acme error 'urn:acme:error:connection': DNS ...
- asp.net MVC 异常处理
http://www.cnblogs.com/think8848/archive/2011/03/18/1987849.html http://www.cnblogs.com/snowdream/ar ...
- Linux下鼠标滚轮速度调整
安装imwheel 于home下创建.imwheelrc gedit ~/.imwheelrc 在.imwheelrc中粘贴以下内容 ".*" None, Up, Button4, ...
- SpringCloud报错: "Field discoveryClient in com.controller.DcController required a bean of type 'com.netflix.discovery.DiscoveryClient' that could not be found."
SpringCloud报错: "Field discoveryClient in com.controller.DcController required a bean of type 'c ...
- JS 7路线图
JS 7路线图 今天,我很高兴宣布路线图到视频.JS 7!虽然这是一个主要版本更新,但很少有真正打破.两个主要变化是添加了videojs-http-streaming,简称为VHS,以及删除了对较老版 ...
- Linux 字符设备驱动及一些简单的Linux知识
一.linux系统将设备分为3类:字符设备.块设备.网络设备 1.字符设备:是指只能一个字节一个字节读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后数据.字符设备是面向流的设备,常见 ...
- Linux下查看编辑二进制文件:hexedit神器
1.如果没有hexedit安装hexedit:2.打开终端输入hexedit filename;3.打开即可用键盘输入字符,用方向键移动,ctrl+w保存,ctrl+x退出:4.详细用法 man he ...