环境:

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地址与整数的。临时可以用用。

支持:

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

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