如何判断IP地址是否在某个IP段中?????????急!!!

xujun5031 2011-05-07 09:37:31
我的页面有一个文本框,用户可以输入IP段,比如[192.168.1.10-19.168.1.111]
数据库中有张computer表,其中一个字段computerIP是机器的IP地址,
限制要根据用户输入的IP段在computer表中查询获取得这个IP段中的计算机设备,要如何比较IP?
...全文
400 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xujun5031 2011-05-08
  • 打赏
  • 举报
回复
自己解决了,结贴
ZhuZhuYuXiang 2011-05-08
  • 打赏
  • 举报
回复
转化整lang型,进行比较
winner2050 2011-05-08
  • 打赏
  • 举报
回复
IP可以转换为long 数值型,ip段可以转为一个区间。
这样比较数字大小就可以了。
子夜__ 2011-05-07
  • 打赏
  • 举报
回复
Ip转long判断
System.Net.IPAddress ipaddress = System.Net.IPAddress.Parse("");
long ip= ipaddress.Address;

a * 256 * 256 * 256 + b * 256 * 256 + c * 256 + d;

/// <summary>
/// 分割IP
/// </summary>
/// <param name="ipAddress">IP地址</param>
/// <returns></returns>
private long getIpNum(String ipAddress)
{
String[] ip = ipAddress.Split(new char[] { '.' });
long a = int.Parse(ip[0]);
long b = int.Parse(ip[1]);
long c = int.Parse(ip[2]);
long d = int.Parse(ip[3]);

return a * 256 * 256 * 256 + b * 256 * 256 + c * 256 + d;
}
/// <summary>
/// 判断客户端的IP是否在某个ip段中
/// </summary>
/// <param name="clientIp">客户端的IP</param>
/// <param name="begin">开始IP</param>
/// <param name="end">结束IP</param>
/// <returns></returns>
private bool isInner(long clientIp, long begin, long end)
{
return (clientIp >= begin) && (clientIp <= end);
}


///调用方法
long ip = getIpNum("60.162.200.35");
long start_ip = getIpNum("60.162.200.0");
long end_ip = getIpNum("60.162.201.255");

if (isInner(ip, start_ip, end_ip))
{
Response.Write("是");
}
else
{
Response.Write("不是");
}
满衣兄 2011-05-07
  • 打赏
  • 举报
回复
select * from computer where computerIP like '192.168.%'
根据不同的需求构造不同的语句,like 后面的变变就行了
天下在我心 2011-05-07
  • 打赏
  • 举报
回复
根据规则正则匹配

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧