转换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?

+1

我想001自己什么都做不了。 – 2011-01-08 22:18:18

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类。

Try this我认为这是同样的问题,它有一个答案(享受)

+0

这应该是一个投票结束。 – 2011-01-08 21:30:11

退房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类一些静态方法用于处理。