HarryPotter
驱动牛犊
驱动牛犊
  • 注册日期2003-07-28
  • 最后登录2004-05-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1740回复:5

怎么实现WIN2K SERVER下IP或MAC白名单

楼主#
更多 发布于:2003-09-14 11:33
我想在WIN2K SERVER下做一个IP或MAC地址白名单,就是只允许与在名单里的机器通信。本来想直接用RRAS里的IP筛选器,没想到刚添加了200多个RULE,系统就崩溃了,看来IP筛选器不支持大量规则,可是我的白名单中至少有300多个IP或MAC,如果对每个包都做检查是不是效率非常低,怎样才能实现高效率的白名单呢?有现成的防火墙软件也行
HarryPotter
驱动牛犊
驱动牛犊
  • 注册日期2003-07-28
  • 最后登录2004-05-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-09-14 20:33
我有快速过滤IP地址的方法了,但是却不会写驱动程序,真是有力都使不上。
用汇编写的快速过滤IP的程序为
iplist dd ip1,ip2,ip3,ip4;其中所有IP均为转换为32位数字的IP地址
count=4
mov eax,ip ;ip为要过滤的当前IP
mov edi,offset iplist;es:edi=>iplist
mov ecx,count ;
cld
repe scasd;这样最多循环4次就能找到IP,即使有300个IP也只要300次,对CPU来说,每次过滤花300个时钟周期可能也无所谓了吧
je found

[编辑 -  9/14/03 by  HarryPotter]
slwqw
驱动大牛
驱动大牛
  • 注册日期2002-07-18
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望197点
  • 贡献值0点
  • 好评度147点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-09-15 11:46
我有快速过滤IP地址的方法了,但是却不会写驱动程序,真是有力都使不上。
用汇编写的快速过滤IP的程序为
iplist dd ip1,ip2,ip3,ip4;其中所有IP均为转换为32位数字的IP地址
count=4
mov eax,ip ;ip为要过滤的当前IP
mov edi,offset iplist;es:edi=>iplist
mov ecx,count ;
cld
repe scasd;这样最多循环4次就能找到IP,即使有300个IP也只要300次,对CPU来说,每次过滤花300个时钟周期可能也无所谓了吧
je found

[编辑 -  9/14/03 by  HarryPotter]


300多个IP,也就300多个long数据。如果事先进行排序,过滤时使用“二分查找”的方法,总共不超过10次比较就可得出结果,是不是比你原来的方法快一些?
HarryPotter
驱动牛犊
驱动牛犊
  • 注册日期2003-07-28
  • 最后登录2004-05-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-09-20 11:46
厉害!我怎么就没想到呢,呵呵

还有个问题是我的服务器已经启动了RRAS的NAT服务,它也是用的IP FILTER,虽然我还没有在里面添加任何RULES。但是如果我再写一个IP FILTER会不会冲突呢
bobo_lei
驱动牛犊
驱动牛犊
  • 注册日期2003-03-26
  • 最后登录2008-11-16
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望14点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-09-24 23:21
可以用NDIS驱动实现嘛,很简单的
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-09-25 15:16
这个应该是做在ndis中比较好,imd就可以了。
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
游客

返回顶部