32位数值转化为8位IP地址

Posted wangjian1226

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了32位数值转化为8位IP地址相关的知识,希望对你有一定的参考价值。

#define u8 unsigned char
#define u32 unsigned int
#define SWAP32(ipValue) ((u32)(((ipValue) & 0xff) << 24) |                         (((ipValue) & 0xff00) << 8) |                         (((ipValue) >> 8)  & 0xff00) |                         (((ipValue) >> 24) & 0xff) ); 
int main()
{
    u8 ip_addr[4] = {0};
    unsigned long src = 0x93d4860a;
    src = SWAP32(src)
    ip_addr[0] = (u8) ((src >> 24) & 0xff);
    ip_addr[1] = (u8 ) ((src >> 16) & 0xff);
    ip_addr[2] = (u8 ) ((src >> 8) & 0xff);
    ip_addr[3] = (u8 ) (src & 0xff);
    printf("src = %d.%d.%d.%d 
",ip_addr[0],ip_addr[1],ip_addr[2],ip_addr[3]);
    unsigned long dst = 0x3ba41d73;
    dst = SWAP32(dst)
    ip_addr[0] = (u8 ) ((dst >> 24) & 0xff);
    ip_addr[1] = (u8 ) ((dst >> 16) & 0xff);
    ip_addr[2] = (u8 ) ((dst >> 8) & 0xff);
    ip_addr[3] = (u8 ) (dst & 0xff);
    printf("dst = %d.%d.%d.%d 
",ip_addr[0],ip_addr[1],ip_addr[2],ip_addr[3]);
}

以上是关于32位数值转化为8位IP地址的主要内容,如果未能解决你的问题,请参考以下文章

IP地址的二进制是怎么转化成十进制的?

C语言将ip地址的二进制形式转化为十进制的形式

RGB转化int32数值

ip地址有多少个数值

IP地址深入剖析

IP报文字段