【IP地址の乾坤大挪移】C语言实现“IP地址/数字”互转

环境:

vs2008可以运行。

demo:

简单演示下ip地址与整数互转。

注意ip顺序问题。保证一致即可。

code:

#include <stdio.h>

//demo
//ip 10.67.83.11
//  172184331


void main()
{
    ///* 待转化的整数IP */
    unsigned  int  IP1_Addr,IP2_Addr;
    IP1_Addr = 172184331;
    IP2_Addr = 172184331;

    // 法1:提取IP:位移操作 
    int addr1_1 = IP1_Addr >> 24;        // 提取第一部分IP地址
    IP1_Addr = IP1_Addr << 8;
    int addr1_2 = IP1_Addr >> 24;        // 提取第二部分IP地址 
    IP1_Addr  = IP1_Addr << 8;
    int addr1_3 = IP1_Addr >> 24;        // 提取第三部分IP地址 
    IP1_Addr  = IP1_Addr  << 8;
    int addr1_4 = IP1_Addr  >> 24;       // 提取第四部分IP地址 

    // 打印IP地址:结果为"10.67.83.11" 
     printf("IP地址(位移操作)为:%d.%d.%d.%d\n", addr1_1, addr1_2, addr1_3, addr1_4);

    // 法2:提取IP:求余取整 
    int addr2_4  = IP2_Addr % 256;       // 提取第一部分IP地址
    IP2_Addr  = IP2_Addr / 256;		
    int addr2_3 = IP2_Addr % 256;        // 提取第一部分IP地址
    IP2_Addr  = IP2_Addr / 256;		
    int addr2_2 = IP2_Addr % 256;        // 提取第一部分IP地址
    IP2_Addr = IP2_Addr / 256;		
    int addr2_1  = IP2_Addr % 256;       // 提取第一部分IP地址

    // 打印IP地址:结果为"10.67.83.11" 
    printf("IP地址(求余取整)为:%d.%d.%d.%d\n", addr2_1, addr2_2, addr2_3, addr2_4);


    ///********************** 字符串IP转整数就比较简单了 ***************************/

    //待转换字符串IP 
    //char * IP_Addr = "10.67.83.11";

    //提取4部分整数:提取方法很多这里省略
    int addr_1 = 10;
    int addr_2 = 67;
    int addr_3 = 83;
    int addr_4 = 11;
   
    unsigned long IP_Int =  (addr_1 * 256 * 256 *256) +(addr_2 * 256 * 256) + (addr_3 * 256) + addr_4;

    printf("整数IP地址为:%ld\n", IP_Int);

}

分享:

另分享一个在线转ip地址与整数的。临时可以用用。

http://www.bejson.com/convert/ip2int/

支持:

欢迎关注公众号  谁吃薄荷糖,主要记录日常中觉得有意思的事情以及分享开发实践,保持深度和专注度,喜欢的点击右下角的再看哦。

https://i-blog.csdnimg.cn/blog_migrate/4d29ff312af8f810d4a0dbfa3f93a29f.png

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谁吃薄荷糖

你获得知识,我获得财富,双赢!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值