끄적끄적

반응형

#ifdef WIN32

#  pragma comment(lib, "ws2_32.lib")

#  include <winsock2.H>

#  include <WS2TCPIP.H>

#else

#endif


#include <stdio.h>


/**

@code


RFC 3493 3.7 Compatibility with IPv4 Nodes


The IPv4 address is encoded into the low-order 32 bits of

the IPv6 address, and the high-order 96 bits hold the fixed prefix

0:0:0:0:0:FFFF.  IPv4-mapped addresses are written as follows:


::FFFF:


@endcode

*/

struct in_addr6 IPv4ToIPv6(struct in_addr IPv4)

{

    struct in_addr6 IPv6;

    

    memset(&IPv6, 0x00, sizeof(IPv6));


    IPv6.s6_addr[10] = IPv6.s6_addr[11] = 0xFF;

    memcpy(&IPv6.s6_addr[12], &IPv4.s_addr, sizeof(IPv4));


    return IPv6;

}


int main(int argc, char **argv)

{

    struct in_addr IPv4;

    struct in_addr6 IPv6;


    const char *pszIPv4 = "192.168.0.1";

    

    IPv4.s_addr = inet_addr(pszIPv4);    

    IPv6 = IPv4ToIPv6(IPv4);


    return 0;

}


반응형
Please Enable JavaScript!
Mohon Aktifkan Javascript![ Enable JavaScript ]