• 一种转换Ipv6地址的方法


    原CSDN博客不再更新维护。

    本文介绍了一种将char* 类型的Ipv6地址转换成BYTE(unsigned char)或者in6_addr类型的方法。

    说明:使用时需要下载Ipv6++.lib和Ipv6++.dll(32位程序,64位程序可利用已有的函数自行编写)

    链接: https://pan.baidu.com/s/1C-dakhZRFbYBMp-wd4dcUw 密码: 5fcz

    使用方法:

     1 // stdafx.h : 标准系统包含文件的包含文件,
     2 // 或是经常使用但不常更改的
     3 // 特定于项目的包含文件
     4 //
     5 
     6 #pragma once
     7 
     8 #include "targetver.h"
     9 
    10 #include <stdio.h>
    11 #include <tchar.h>
    12 
    13 
    14 
    15 // TODO: 在此处引用程序需要的其他头文件
    16  
    17 
    18 // ConsoleApplication5.cpp : 定义控制台应用程序的入口点。
    19 //
    20 
    21 #include "stdafx.h"
    22 
    23 //如果需要使用in6_addr类型需要包含以下头文件
    24 #include "WINSOCK2.H"
    25 #include "in6addr.h"
    26 
    27 #pragma comment (lib,"Ipv6++")
    28 
    29 extern "C" int Ipv6AddrStringToByte(const char *pAddrV6Str, unsigned char *pOut);
    30 
    31 extern "C" int Ipv6AddrStringToIn6_addr(const char *pAddrV6Str, in6_addr *pOut);
    32 
    33 int main()
    34 {
    35     char *str = "2001:0DB8:0000:0023:0008:0800:200C:417A";
    36     unsigned char b[16] = { 0 };
    37     Ipv6AddrStringToByte(str, b);
    38     for (int i = 0; i < 15; i++)
    39     {
    40         printf("%02x-", b[i]);
    41 
    42     }
    43     printf("
    ");
    44     in6_addr *p = new in6_addr();
    45 
    46     Ipv6AddrStringToIn6_addr(str, p);
    47     for (int i = 0; i < 15; i++)
    48     {
    49         printf("%02x-", p->u.Byte[i]);
    50 
    51     }
    52         delete p;
    53     getchar();
    54     return 0;
    55 }
    View Code
    
    

    函数说明:Ipv6++.lib和Ipv6.dll由函数

    NTSYSAPI

    LONG

    NTAPI
    RtlIpv6StringToAddressW (
        _In_ PCWSTR S,//指向Ipv6地址的Wchar*指针
        _Out_ PCWSTR *Terminator,//任意的PCWSTR的非空指针
        _Out_ struct in6_addr *Addr//in6_addr类型的地址结构,在In6addr.h中定义
        );
    封装而来,使用方法见Main文件。


    有问题可以评论联系作者交流,本文属于原创,未经允许不得转载或者用于其他用途。

    除特殊说明外,其余所有文章均属原创。未经允许,请勿进行转载或者其他操作 有问题欢迎留言交流
  • 相关阅读:
    C#连接、访问MySQL数据库
    对列表遍历同时增删操作时注意事项 c
    Linux 操作命令 c
    Memcached 入门 转载与ferreousbox
    转载http://zxiaofei168.iteye.com/blog/1044843 spring事务管理
    spring mvc 学习 转载
    自定义Annotation
    Java的路径问题 转载
    设置火狐调试时间
    vi/vim 基本使用方法(转载)
  • 原文地址:https://www.cnblogs.com/LiuBingBlogs/p/8542168.html
Copyright © 2020-2023  润新知