/// <summary>
/// 屏蔽IPv4段 by roydux
/// </summary>
/// <param name="startIP">开始ip</param>
/// <param name="endIP">结束ip</param>
/// <param name="ip">检查ip</param>
/// <returns>
/// true 在范围
/// false 不在范围
/// </returns>
static bool IsAntiIP(string startIP, string endIP, string ip)
{
IPAddress ia;
if (IPAddress.TryParse(ip,out ia) && (ia.AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6))
{
return false;
}
string[] sdata = startIP.Split('.');
string[] edata = endIP.Split('.');
string[] cdata = ip.Split('.');
for (int i = 0; i < 4; i++)
{
sdata[i] = sdata[i].PadLeft(3, '0');
edata[i] = edata[i].PadLeft(3, '0');
cdata[i] = cdata[i].PadLeft(3, '0');
}
startIP = string.Format("{0}{1}{2}{3}", sdata[0], sdata[1], sdata[2], sdata[3]);
endIP = string.Format("{0}{1}{2}{3}", edata[0], edata[1], edata[2], edata[3]);
ip = string.Format("{0}{1}{2}{3}", cdata[0], cdata[1], cdata[2], cdata[3]);
long sip = long.Parse(startIP.Replace(".", ""));
long eip = long.Parse(endIP.Replace(".", ""));
long cip = long.Parse(ip.Replace(".", ""));
if (cip >= sip && cip <= eip)
{
return true;
}
else
{
return false;
}
}