常规的四个字节整型转换为IP格式比较麻烦,用非托管的方式及一点小窍门,转换实现会变得非常的简单,代码如下:
调用ConvertIP(723830963),结果为:179.200.36.43
原理:参数i保存在栈上,占连续的四个字节;byte占一个字节。让byte指针指向i的起始地址,则指针指向的连续的四个字节都是i的内存空间,取出每个字节的内容转换为十进制然后格式化为IP地址格式即可。
static unsafe string ConvertIP(int i)
{
byte* b = (byte*)&i;
return string.Format("{0}.{1}.{2}.{3}", *b, *(b + 1), *(b + 2), *(b + 3));
}
{
byte* b = (byte*)&i;
return string.Format("{0}.{1}.{2}.{3}", *b, *(b + 1), *(b + 2), *(b + 3));
}
调用ConvertIP(723830963),结果为:179.200.36.43
原理:参数i保存在栈上,占连续的四个字节;byte占一个字节。让byte指针指向i的起始地址,则指针指向的连续的四个字节都是i的内存空间,取出每个字节的内容转换为十进制然后格式化为IP地址格式即可。