转换IP地址转换成int(即INET航标在C#)
问题描述:
可能重复:
.NET Equivalant for INET_NTOA and INET_ATON
How to convert an IPv4 address into a integer in C#?转换IP地址转换成int(即INET航标在C#)
如何执行在C#中相同的UNIX功能INET_ATON?
答
public int ToInteger(int A, int B, int C, int D)
{
return Convert.ToInt32((A* Math.Pow(256, 3)) + (B* Math.Pow(256, 2)) + (C* 256) + D);
}
或http://msdn.microsoft.com/en-us/library/system.net.ipaddress.parse.aspx
像我一样,你可以扩展自己的IP类。
答
退房IPAddress类的IPAddress.Parse(或的TryParse)方法。
一个例子是:
static int IPStringToInt(string ipAddress)
{
IPAddress address = IPAddress.Parse(ipAddress);
byte[] asBytes = address.GetAddressBytes();
if(asBytes.Length != 4)
{
throw new ArgumentException("IP Address must be an IPv4 address");
}
return BitConverter.ToInt32(asBytes, 0);
}
你需要考虑到各字节的主机和网络秩序,但有对IPAddress类一些静态方法用于处理。
我想001自己什么都做不了。 – 2011-01-08 22:18:18