2008-02-04 11:54:09
**************************************************************************************

作者 :ailms <ailms{@}qq{dot}com>

版本 :v1.1

完成时间  :2008/02/02 0:28

**************************************************************************************


一、介绍

  由于 ISC DHCP 没有提供相应的统计工具,所以只能自己动手写一个。sourceforge.net 上也有很多,例如

QUOTE:
  
  php DHCP hosts list : 一个 php 脚本,用于列出一个 DHCP 服务器上的 host 信息

  rogueDetect :发送一个“诱骗”作用的 DHCP DISCOVER ,并等待非权威的 DHCP 服务器消息,以找出未授权的 DHCP 服务器

  phpDHCPAdmin :一个基于 web 界面的管理 DHCP 工具。有认证、错误检查、数据库驱动,简单易用

  Analyzes of behavior of protocol DHCP :dhcpmap 能够“注入”和捕捉 DHCP 流量

  dhcpphp :一个 PHP 脚本,用于显示一个 DHCP 服务器的 leases 记录

  webDHCP :类似 phpDHCPAdmin 的工具

  DHCP lease parser :是一个简单的守护进程,它把 DHCP 服务器的 leases 状态的变化记录到一个数据库,以便历史查询。

                              同时该工具还提供了一个历史记录以供查询

  Lanloard DHCP lease tracker :一个 CGI 程序,用于跟踪 DHCP leases

  ISC DHCP dhcpd.conf parser and editor :以一个友好的界面方便你编辑 dhcpd.conf

  DHCPdetector :用于检测网络上的 DHCP 服务,主要是为了找出 rogue DHCP

  reportdhcp.pl :一个用于汇报 DHCP 统计信息的 perl 脚本,需要启用 web 服务
  
  

所以俺也动手写了一个,功能比较简单,主要有 :
  
  
  1、查询某个 mac 的租用记录 (v1.0)
  
  2、查询某个 ip 地址的租用记录 (v1.0)
  
  3、查询某个主机名的租用记录 (v1.0)
  
  4、允许指定查询的开始时间和结束时间。开始时间默认为当天0点,结束时间默认为当前。(v1.0)
  
  5、列出所有曾经被租用的 ip 以及它们目前的状态 (v1.0)

  6、许指定某个备份的 lease.record.<date> 进行查询。(v1.1)

  7、每月15日的0点10分自动把 lease 记录以 lease.record.<date> 备份,所以意味着默认只能查15天内的数据 (v1.1)

  

二、限制

目前暂时不考虑 DHCP Failover 以及 DHCP Omshell 的分析(这两个东西都会在 dhcpd.leases 中写数据)。

该脚本只记录客户机的 mac、客户机的主机名(如果有的话)以及 lease 的开始/结束时间/状态。

由于环境所限,只有1台客户机可供测试,所以欢迎各位朋友多多指正
  

三、 脚本组成
  
  a) lease_wath.sh ,主要是跟踪 /var/lib/dhcp/dhcpd.leases 文件的输出,并固定输出到某个文件(默认是 /tmp/lease.record)。  
                
                      每次只能启动一个 lease_watch.sh ,否则程序会报错(Error!Another lease_watch is running!)
     
  b) parse.sh :完成上述的功能的第1~6 项 。

  c) rotate.sh :每月15日的0点10分自动把当前的 /tmp/lease.record 备份为 /tmp/lease.record.<date> ,同时重启 lease_watch。

  
四、屏幕截图
  
  按 ip 选择:
  
  Click here to open new window
CTRL+Mouse wheel to zoom in/out
  
  按 mac 选择 :
  
  Click here to open new window
CTRL+Mouse wheel to zoom in/out
  
  按 hostname 选择:
  
  Click here to open new window
CTRL+Mouse wheel to zoom in/out

  指定某个历史文件进行查询

  Click here to open new window
CTRL+Mouse wheel to zoom in/out
  
  列出所有曾经被租用的 ip 以及其状态 :
  
  Click here to open new window
CTRL+Mouse wheel to zoom in/out
  
  语法 :
  Click here to open new window
CTRL+Mouse wheel to zoom in/out