查看linux下dhcp服務(wù)器分配出去的IP地址及剩余IP地址
怎樣查看linux 下dhcp 服務(wù)器分配出去的IP 地址及剩余IP 地址1。你可以查看防火墻信息,如圖,可以清晰的看到,192.1681.200的IP 給了哪個(gè)MAC 地址2. /var/lib/d
怎樣查看linux 下

dhcp 服務(wù)器分配出去的IP 地址及剩余IP 地址
1。你可以查看防火墻信息,如圖,可以清晰的看到,192.1681.200的IP 給了哪個(gè)MAC 地址
2. /var/lib/dhcpd/dhcpd.leases這個(gè)文件專門記錄了DHCP 的分配情況
一、介紹
由于 ISC DHCP 沒有提供相應(yīng)的統(tǒng)計(jì)工具,所以只能自己動(dòng)手寫一個(gè)。sourceforge.net 上也有很多,例如
QUOTE:
php DHCP hosts list : 一個(gè)php 腳本,用于列出一個(gè) DHCP 服務(wù)器上的 host 信息
rogueDetect :發(fā)送一個(gè)“誘騙”作用的 DHCP DISCOVER ,并等待非權(quán)威的 DHCP 服務(wù)器消息,以找出未授權(quán)的 DHCP 服務(wù)器
phpDHCPAdmin :一個(gè)基于 web 界面的管理 DHCP 工具。有認(rèn)證、錯(cuò)誤檢查、數(shù)據(jù)庫驅(qū)動(dòng),簡單易用
Analyzes of behavior of protocol DHCP :dhcpmap 能夠“注入”和捕捉 DHCP 流量
dhcpphp :一個(gè) PHP 腳本,用于顯示一個(gè) DHCP 服務(wù)器的 leases 記錄
webDHCP :類似phpDHCPAdmin 的工具
DHCP lease parser :是一個(gè)簡單的守護(hù)進(jìn)程,它把 DHCP 服務(wù)器的 leases 狀態(tài)的變化記錄到一個(gè)數(shù)據(jù)庫,以便歷史查詢。
同時(shí)該工具還提供了一個(gè)歷史記錄以供查詢
,Lanloard DHCP lease tracker :一個(gè) CGI 程序,用于跟蹤 DHCP leases
ISC DHCP dhcpd.conf parser and editor :以一個(gè)友好的界面方便你編輯dhcpd.conf
DHCPdetector :用于檢測網(wǎng)絡(luò)上的 DHCP 服務(wù),主要是為了找出 rogue DHCP
reportdhcp.pl :一個(gè)用于匯報(bào) DHCP 統(tǒng)計(jì)信息的perl 腳本,需要啟用 web 服務(wù)
所以俺也動(dòng)手寫了一個(gè),功能比較簡單,主要有:
1、查詢某個(gè) mac 的租用記錄 (v1.0)
2、查詢某個(gè)ip 地址的租用記錄 (v1.0)
3、查詢某個(gè)主機(jī)名的租用記錄 (v1.0)
4、允許指定查詢的開始時(shí)間和結(jié)束時(shí)間。開始時(shí)間默認(rèn)為當(dāng)天0點(diǎn),結(jié)束時(shí)間默認(rèn)為當(dāng)前。(v1.0)
5、列出所有曾經(jīng)被租用的ip 以及它們目前的狀態(tài) (v1.0)
6、許指定某個(gè)備份的lease.record.
7、每月15日的0點(diǎn)10分自動(dòng)把 lease 記錄以lease.record.
二、限制
目前暫時(shí)不考慮 DHCP Failover 以及 DHCP Omshell的分析(這兩個(gè)東西都會(huì)在dhcpd.leases 中寫數(shù)據(jù))。
該腳本只記錄客戶機(jī)的 mac 、客戶機(jī)的主機(jī)名(如果有的話)以及 lease 的開始/結(jié)束時(shí)間/狀態(tài)。
由于環(huán)境所限,只有1臺客戶機(jī)可供測試,所以歡迎各位朋友多多指正
三、腳本組成
a ) lease_wath.sh ,主要是跟蹤 /var/lib/dhcp/dhcpd.leases文件的輸出,并固定輸出到某個(gè)文件(默認(rèn)是 /tmp/lease.record)。
,
每次只能啟動(dòng)一個(gè)

lease_watch.sh ,否則程序會(huì)報(bào)錯(cuò)(Error !Another lease_watch is running?。?/p>
b ) parse.sh :完成上述的功能的第1~6 項(xiàng)。
c ) rotate.sh :每月15日的0點(diǎn)10分自動(dòng)把當(dāng)前的 /tmp/lease.record備份為 /tmp/lease.record.
四、屏幕截圖
按ip 選擇:
按 mac 選擇:
按 hostname 選擇:
,

指定某個(gè)歷史文件進(jìn)行查詢
列出所有曾經(jīng)被租用的ip 以及其狀態(tài):
,

語法:
========================
從dhcpd.lease 中提取MAC 和IP 地址. 2008-01-10 22:17:26 從DHCP 的log 中提取MAC 和IP 地址.
/var/lib/dhcpd/dhcp.lease中的一段記錄如下:
lease 192.168.1.238 {
starts 0 2007/11/25 11:57:41;
ends 0 2007/11/25 17:57:41;
tstp 0 2007/11/25 17:57:41;
binding state free;
,hardware ethernet 00:0c:29:ac:4e:01;
uid "77eth001016545J04)4N1";
}
# catdhcpd.leases | egrep 'lease|hardware' | sed 's/lease//g' | sed 's/{//g' | s ed 's/hardware ethernet//g
網(wǎng)友給的辦法. 測試了一下. 重復(fù)的較多. 主要是出現(xiàn)了. 同一個(gè)MAC 多次獲取不同的IP 地址的情況 在CU 上找到更好的命令[url]http://bbs.chinaunix.net/thread-980700-1-1.html[/url]
catdhcpd.leases|awk 'BEGIN{RS=ORS="}"}{print $2,$21,"n"}'
或者
awk 'BEGIN{RS=ORS="}"}{print $2,$21,"n"}' dhcpd.leases
解釋:
RS 輸入的記錄他隔符新行
ORS 輸出的記錄分隔符新行
從頭查找, 遇到}結(jié)束, 顯示第2和第21個(gè)字段.ip 在第2個(gè)字段.mac 在第21個(gè)字段.
這樣出來的結(jié)果基本符合我們的要求.
All so
}192.168.1.250 00:0c:29:ac:4e:01;
}192.168.1.238 00:0c:29:ac:4e:01;
}192.168.1.241 00:0c:29:ac:4e:01;
}192.168.1.246 00:0c:29:ac:4e:01;
}192.168.1.248 00:0c:29:ac:4e:01;
}192.168.1.251 00:0c:29:05:ac:8a;
}192.168.1.253 00:0c:29:c2:b3:44;
}192.168.1.247 00:0a:eb:f3:39:dd;
}192.168.1.254 00:0c:29:c2:b3:44;
}192.168.1.249 00:0c:29:a8:c7:0a;
}192.168.1.245 00:0c:29:79:e2:aa;
}192.168.1.244 00:0c:29:79:e2:aa;
}192.168.1.243 00:0c:29:9d:e8:d8;
}192.168.1.240 00:0c:29:a8:59:21;
}192.168.1.242 00:0c:29:9d:e8:d8;
}192.168.1.239 00:16:d3:b6:1b:d2;
}
缺點(diǎn)就是第一行多了All so 每一行多了},也就是說我們要把這個(gè)結(jié)果再處理一下.
去掉第一行和最后一行, 并把它排序.
改進(jìn)一下命令, 由于dhcpd.lease 前面7行都是注釋的內(nèi)容, 我們跳過這些行
tail -n 8 dhcpd.lease
從第8行開始顯示dhcpd.lease 文件
#tail -n 8 dhcpd.leases|less|awk'BEGIN{RS=ORS="}"}{print $2,$21,"n"}' 192.168.1.252 00:0c:29:ac:4e:01;
}192.168.1.250 00:0c:29:ac:4e:01;
}192.168.1.238 00:0c:29:ac:4e:01;
,}192.168.1.241 00:0c:29:ac:4e:01;
}192.168.1.246 00:0c:29:ac:4e:01;
}192.168.1.248 00:0c:29:ac:4e:01;
}192.168.1.251 00:0c:29:05:ac:8a;
}192.168.1.253 00:0c:29:c2:b3:44;
}192.168.1.247 00:0a:eb:f3:39:dd;
}192.168.1.254 00:0c:29:c2:b3:44;
}192.168.1.249 00:0c:29:a8:c7:0a;
}192.168.1.245 00:0c:29:79:e2:aa;
}192.168.1.244 00:0c:29:79:e2:aa;
}192.168.1.243 00:0c:29:9d:e8:d8;
}192.168.1.240 00:0c:29:a8:59:21;
}192.168.1.242 00:0c:29:9d:e8:d8;
}192.168.1.239 00:16:d3:b6:1b:d2;
}
現(xiàn)在還有該死的},我們用sed 命令把它替換掉.
sed 's/}//g'
替換所有的}為空
#tail -n 8 dhcpd.leases|less|awk'BEGIN{RS=ORS="}"}{print $2,$21,"n"}'|sed 's/}//g'
192.168.1.252 00:0c:29:ac:4e:01;
192.168.1.250 00:0c:29:ac:4e:01;
192.168.1.238 00:0c:29:ac:4e:01;
192.168.1.241 00:0c:29:ac:4e:01;
192.168.1.246 00:0c:29:ac:4e:01;
192.168.1.248 00:0c:29:ac:4e:01;
192.168.1.251 00:0c:29:05:ac:8a;
192.168.1.253 00:0c:29:c2:b3:44;
192.168.1.247 00:0a:eb:f3:39:dd;
192.168.1.254 00:0c:29:c2:b3:44;
192.168.1.249 00:0c:29:a8:c7:0a;
192.168.1.245 00:0c:29:79:e2:aa;
192.168.1.244 00:0c:29:79:e2:aa;
192.168.1.243 00:0c:29:9d:e8:d8;
192.168.1.240 00:0c:29:a8:59:21;
192.168.1.242 00:0c:29:9d:e8:d8;
192.168.1.239 00:16:d3:b6:1b:d2;
我們再把結(jié)果排序一下, 讓它看上去舒服一些.
#tail -n 8 dhcpd.leases|less|awk'BEGIN{RS=ORS="}"}{print $2,$21,"n"}'|sed 's/}//g'|sort -n
192.168.1.238 00:0c:29:ac:4e:01;
192.168.1.239 00:16:d3:b6:1b:d2;
,

subnet 192.168.23.0 netmask 255.255.255.0 { #定義網(wǎng)段IP 范圍,須在本機(jī)所處網(wǎng)段范圍內(nèi),{}內(nèi)的信息表示此網(wǎng)段的配置信息
# --- default gateway
option routers 192.168.23.1; #設(shè)置客戶端默認(rèn)網(wǎng)關(guān)
option subnet-mask 255.255.255.0; #設(shè)置客戶端子網(wǎng)掩碼
option domain-name "domain.org"; #設(shè)置域名
option domain-name-servers 192.168.23.128; #設(shè)置網(wǎng)絡(luò)內(nèi)部DNS 服務(wù)器的IP 地址
option time-offset -18000; # Eastern Standard Time
range dynamic-bootp 192.168.23.129 192.168.23.254; #定義DHCP 地址池的服務(wù)范圍,需排除靜態(tài)地址 default-lease-time 21600; #設(shè)置默認(rèn)租約時(shí)間
max-lease-time 43200; #設(shè)置最大租約時(shí)間
host ns { #設(shè)置靜態(tài)IP 地址,用于網(wǎng)絡(luò)內(nèi)固定服務(wù)器IP ,不要置于定義好的DHCP 地址池范圍內(nèi),否則會(huì)引起IP 沖突。
hardware ethernet 00:0C:29:00:5B:78; #設(shè)置靜態(tài)主機(jī)的mac 地址,與IP 進(jìn)行綁定
fixed-address 192.168.23.128;
}
}
配置/etc/dhcpd.conf
#為注釋,除括號一行外,每行都應(yīng)以;結(jié)尾,
設(shè)置的項(xiàng)目都具有獨(dú)特的名稱。形式為<參數(shù)代號><設(shè)置內(nèi)容>,如default-time 20000
某些項(xiàng)目必須利用option 設(shè)置,形式為option<參數(shù)代碼><設(shè)置內(nèi)容>
DHCP 的ip 分為靜態(tài)ip 和動(dòng)態(tài)ip ,如果設(shè)置靜態(tài)ip 需要知道要設(shè)置主機(jī)的MAC 地址,#ping 目標(biāo)主機(jī)ip ,#arp –n 查看。
parameters (參數(shù)):表明如何執(zhí)行任務(wù),是否要執(zhí)行任務(wù),或?qū)⒛男┚W(wǎng)絡(luò)配置選項(xiàng)發(fā)送給客戶 Defaults-lease-time :默認(rèn)租約時(shí)間,默認(rèn)單位為秒
Max-lease-time :最大租約時(shí)間,客戶端超過租約但尚未更新IP 時(shí),最長可以使用該IP 的時(shí)間 ddns-update-style 配置DHCP-DNS 互動(dòng)更新模式
default-lease-time 指定確省租賃時(shí)間的長度,單位是秒
hardware 指定網(wǎng)卡接口類型和MAC 地址
server-name 通知DHCP 客戶服務(wù)器名稱
get-lease-hostnames flag 檢查客戶端使用的IP 地址