网站首页 网站建设 IT知识 IT知识教程 c#中将IP地址转换成无符号整形数的方法与逆变换方法

c#中将IP地址转换成无符号整形数的方法与逆变换方法

2021-05-02 21:10:58

我们知道IP地址就是给每个连接在Internet上的主机分配的一个32bit地址。

按照TCP/IP协议规定,IP地址用二进制来表示,每个IP地址长32bit,比特换算成字节,就是4个字节。而c#中int32的数就是四个字节的,但是符号要占掉一位所以就不够了,但是无符号的 UInt32 就没有这样的问题。

所以理论上讲:UInt32是可以完整保存一个IP地址的。那下面的两个方法就是对IP与UInt32之间的互转换。

publicstaticstringInt2IP(UInt32ipCode){bytea=(byte)((ipCode&0xFF000000)>>0x18);byteb=(byte)((ipCode&0x00FF0000)>>0xF);bytec=(byte)((ipCode&0x0000FF00)>>0x8);byted=(byte)(ipCode&0x000000FF);stringipStr=String.Format("{0}.{1}.{2}.{3}",a,b,c,d);returnipStr;}publicstaticUInt32IP2Int(stringipStr){string[]ip=ipStr.Split('.');uintipCode=0xFFFFFF00|byte.Parse(ip[3]);ipCode=ipCode&0xFFFF00FF|(uint.Parse(ip[2])<<0x8);ipCode=ipCode&0xFF00FFFF|(uint.Parse(ip[1])<<0xF);ipCode=ipCode&0x00FFFFFF|(uint.Parse(ip[0])<<0x18);returnipCode;}

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。 如涉及版权问题,请提交至online#300.cn邮箱联系删除。

以上产品还未完全满足我的所有需求,在下方提交我的专属需求
我的专属需求:
*手机号:
*验证码:
img
咨询报价
现在咨询
img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP