有时候判断IP,在某一个范围内,用字符串的方式不太友好,所以可以使用将IP转换成数字再进行判断,就相对简单很多
/// <summary>
/// IP地址转换为数字
/// </summary>
/// <param name="ip">ip地址</param>
/// <returns></returns>
public static long IpToLong(string ip)
{
long IntIp = 0;
string[] ips = ip.Split('.');
IntIp = long.Parse(ips[0]) << 0x18 | long.Parse(ips[1]) << 0x10 | long.Parse(ips[2]) << 0x8 | long.Parse(ips[3]);
return IntIp;
}
/// <summary>
/// IP地址转换为数字
/// </summary>
/// <param name="ip">ip地址</param>
/// <returns></returns>
public static string LongToIp(long ip)
{
long IntIp = ip;
StringBuilder sb = new StringBuilder();
sb.Append(IntIp >> 0x18 & 0xff).Append(".");
sb.Append(IntIp >> 0x10 & 0xff).Append(".");
sb.Append(IntIp >> 0x8 & 0xff).Append(".");
sb.Append(IntIp & 0xff);
return sb.ToString();
}