我的页面有一个文本框,用户可以输入IP段,比如[192.168.1.10-19.168.1.111]
数据库中有张computer表,其中一个字段computerIP是机器的IP地址,
限制要根据用户输入的IP段在computer表中查询获取得这个IP段中的计算机设备,要如何比较IP?
数据库中有张computer表,其中一个字段computerIP是机器的IP地址,
限制要根据用户输入的IP段在computer表中查询获取得这个IP段中的计算机设备,要如何比较IP?
解决方案 »
- 朋友说这样写不好!我想知道这样有什么坏处?真的不好吗?
- ASP.NET 做一个投票的功能,用Label控件来显示票数。点击投票后它能自动加1进去。
- 伪静态.配置节点各位帮帮忙哈~~~~
- AjaxControlToolkit里的AutoCompleteExtender,我想输入W,就显示以“王”开头的人名,应该怎么办?
- Datalist 嵌套 Datalist
- [2008/07/02]code
- SQL頭疼的問題 請高手指教一下
- 系统架构的困难,各位帮忙,肯定揭帖
- vs.net2003中DataGrid的用法
- 请问:如何制作多语言版本?
- 求ASP.NET静态页面生成及分页的实现代码
- 从sql表中取值判断
根据不同的需求构造不同的语句,like 后面的变变就行了
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("不是");
}
这样比较数字大小就可以了。