【IP地址の乾坤大挪移】C语言实现“IP地址/数字”互转
原创
©著作权归作者所有:来自51CTO博客作者wx63dcc0114075e的原创作品,请联系作者获取转载授权,否则将追究法律责任
环境:
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地址与整数的。临时可以用用。
支持:
欢迎关注公众号 谁吃薄荷糖,主要记录日常中觉得有意思的事情以及分享开发实践,保持深度和专注度,喜欢的点击右下角哦。
