DHCPStatus - 網頁呈現 DHCP Client 租用情形

1、前言

DHCPStatus 為採用 Perl 語言所撰寫,能幫助你分析 DHCP Client 租用檔 (dhcpd.lease) 內容並且會將租用時間由 GMT 改為主機的當地時間,並且藉由網頁方式呈現 DHCP Client 租用資訊方便管理者即時查看內容。

DHCPStatus 成果展示畫面:



文章目錄

1、前言
2、實作環境
3、安裝及設定
          步驟1.下載 dhcpstatus_0.60.tar.gz 套件
          步驟2.套件解壓縮及安裝
          步驟3.修改 dhcpstatus.ini 設定檔
          步驟4.網頁伺服器 CGI 資料夾
          步驟5.修改 DHCPStatus 執行檔
          步驟6.觀看成果
4、補充. Location 欄位說明文字
5、參考



2、實作環境

  • FreeBSD 8.2-RELEASE-p2
  • dhcpstatus_0.60.tar.gz 



3、安裝及設定

步驟 1. 下載 dhcpstatus_0.60.tar.gz 套件

由於 DHCPStatus 並未收藏於 Port Tree 中,因此必須手動下載套件。
cd /tmp
fetch http://prdownloads.sourceforge.net/dhcpstatus/dhcpstatus_0.60.tar.gz
 dhcpstatus_0.60.tar.gz                        100% of   24 kB  336 kBps




步驟 2. 套件解壓縮及安裝

先將套件進行解壓縮的動作。
tar zxvf /tmp/dhcpstatus_0.60.tar.gz      //套件解壓縮
 x dhcpstatus_0.60/
 x dhcpstatus_0.60/INSTALL
 x dhcpstatus_0.60/scripts/
 x dhcpstatus_0.60/scripts/dhcpstatus
 x dhcpstatus_0.60/scripts/dhcpstatus.cgi
 x dhcpstatus_0.60/LICENSE
 x dhcpstatus_0.60/libraries.tar
 x dhcpstatus_0.60/README
 x dhcpstatus_0.60/VERSION

將 libraries.tar 複製到 /usr/local/etc 下後,再度進行解壓縮(會產生 /usr/local/etc/dhcpstatus 資料夾)以及刪除來源檔。
cp libraries.tar /usr/local/etc/         //複製 libraries.tar
cd /usr/local/etc/
tar zxvf libraries.tar ;rm libraries.tar  //解開檔案內容
 x dhcpstatus/
 x dhcpstatus/common.pm
 x dhcpstatus/Lease.pm
 x dhcpstatus/Pool.pm
 x dhcpstatus/Subnet.pm
 x dhcpstatus/dhcpstatus.pm
 x dhcpstatus/display_html.pm
 x dhcpstatus/Display.pm
 x dhcpstatus/dhcpstatus_subnet.pm
 x dhcpstatus/Line_print.pm
 x dhcpstatus/iptools.pm
 x dhcpstatus/Formatted_text.pm
 x dhcpstatus/display_line.pm
 x dhcpstatus/dhcpstatus_cmd.pm
 x dhcpstatus/dhcpstatus_subnet_cmd.pm
 x dhcpstatus/dhcpstatus_cgi.pm
 x dhcpstatus/Dhcpstatus_env.pm
 x dhcpstatus/dhcpstatus_subnet_cgi.pm
 x dhcpstatus.ini




步驟 3. 修改 dhcpstatus.ini 設定檔

修改 DHCPStatus 設定檔 (/usr/local/etc/dhcpstatus.ini) 內容如下:
vi /usr/local/etc/dhcpstatus.ini     //修改 DHCPStatus 設定檔
 title=Weithenn DHCP Subnet Information  //屆時呈現的網頁大標題
 conf_file=/usr/local/etc/dhcpd.conf     //讀取的 DHCP 設定檔路徑
 leases_file=/var/db/dhcpd/dhcpd.leases  //讀取的 DHCP 租用檔路徑




步驟 4. 網頁伺服器 CGI 資料夾

接著將 DHCPStatus 執行檔 (dhcpstatus.cgi) 複製到您的網頁伺服器 CGI 資料夾下,並且確定該執行檔中的 Perl 執行路徑跟您系統中的 Perl 執行檔路徑相同。
cp /tmp/dhcpstatus_0.60/scripts/dhcpstatus.cgi /home/web/cgi-bin/
確定系統中的 Perl 執行檔路徑及 DHCPStatus 執行檔 (dhcpstatus.cgi) 是否相同,若不同則必須要修正為跟系統中 Perl 執行檔相同路徑。

系統中 Perl 執行檔路徑
whereis perl
 perl: /usr/bin/perl /usr/local/man/man1/perl.1.gz /usr/src/contrib/file/Magdir/perl

DHCPStatus 執行檔 (dhcpstatus.cgi) Perl 執行檔路徑
grep "perl -w" /home/web/cgi-bin/dhcpstatus.cgi #!/usr/bin/perl -w



步驟 5. 修改 DHCPStatus 執行檔

接著修改 DHCPStatus 執行檔 (dhcpstatus.cgi) 內容,使執行檔能正確抓到 /usr/local/etc/dhcpstatus 資料夾內的 *.pm 檔案。
vi /home/web/cgi-bin/dhcpstatus.cgi
 use lib "/usr/local/dhcpstatus";   //預設值
 use lib "/usr/local/etc";          //修改後




步驟 6. 觀看成果

即可鍵入如下網址開始查看 DHCPStatus 內容:
http://www.weithenn.org/cgi-bin/dhcpstatus.cgi



4、補充. Location 欄位說明文字

若想要在成果頁面中的 Location 欄位加上說明,只要在 dhcpd.conf 設定檔進行註解說明即可,只要在該 subnet 上面那一行加上 #$ 的註解文字開頭即可,那麼這個符號後面的註解文字就會是 Location 欄位的文字,如下範例,那麼 Location 欄位文字就會顯示為 IT Room。
#$ IT Room
 subnet 10.0.0.0 netmask 255.255.255.0 {
   range 10.0.0.1 10.0.0.240;
   option routers 10.0.0.254;
 }




5、參考