Package: dhcpstatus
dhcpstatusis a pure python implementation of DHCPSTATUS (http://dhcpstatus.sourceforge.net/),
implementing most of its functionalities.With subnet status operation,dhcpstatuswill return IP details for each subnet. It will provide:IP range defined for the subnetTotal number of IPs defined for useCount of free IPs in the subnetCount of used IPs in the subnetIPs leased out from each subnetMAC address of the host the IP is leasedHostname of the machine DHCP IP is leased toUsagedhcpstatuscommand :dhcpstatus_subnetdhcpstatusinstallation also comes with command style entry pointdhcpstatus_subnet. You can rundhcpstatusin standalone cli mode using binarydhcpstatus_subnet:$dhcpstatus_subnet/path/to/dhcp_subnet.conf/path/to/dhcpd.leaseSubnet|Netmask|LowAddress|HighAddress|IPsdefined|IPsfree|IPsinuse|IPs|MACs|Hostname10.30.217.0|255.255.255.192|10.30.217.4|10.30.217.62|59|53|6|10.30.217.39|9c:b6:54:aa:78:c3|host1|||||||10.30.217.5|9c:b6:54:aa:88:9f|host2|||||||10.30.217.21|9c:b6:54:aa:8b:07|host3|||||||10.30.217.18|9c:b6:54:ab:b9:eb|host4|||||||10.30.217.56|9c:b6:54:ab:bb:2f|host5|||||||10.30.217.37|9c:b6:54:ab:bb:9b|host610.30.217.64|255.255.255.192|10.30.217.68|10.30.217.126|59|53|6|10.30.217.86|9c:b6:54:aa:8f:7b|host7|||||||10.30.217.100|9c:b6:54:73:60:41|host8|||||||10.30.217.83|9c:b6:54:aa:8b:93|host9|||||||10.30.217.114|9c:b6:54:aa:8b:0f|host10|||||||10.30.217.101|9c:b6:54:aa:8e:bf|host11|||||||10.30.217.117|9c:b6:54:aa:8b:03|host1210.30.241.160|255.255.255.248|10.30.241.164|10.30.241.166|3|3|0|-|-|-10.30.221.64|255.255.255.192|10.30.221.68|10.30.221.126|59|54|5|10.30.221.99|70:10:6f:ca:94:74|host13|||||||10.30.221.78|70:10:6f:ca:90:2c|host14|||||||10.30.221.77|70:10:6f:ca:8f:2c|host15|||||||10.30.221.85|70:10:6f:ca:7d:f4|host16|||||||10.30.221.69|70:10:6f:ca:83:fc|host1710.30.220.0|255.255.255.192|10.30.220.4|10.30.220.62|59|58|1|10.30.220.33|34:17:eb:e8:06:25|host18dhcpstatusAPI usagefromdhcpstatusimport*importpprintd=DHCPStatus('/path/to/dhcp_subnet.conf ',' /path/to/dhcpd.lease')status=d.subnet_status()pprint.pprint(status)ORimportdhcpstatusimportpprintd=dhcpstatus.DHCPStatus('/path/to/dhcp_subnet.conf ',' /path/to/dhcpd.lease')status=d.subnet_status()pprint.pprint(status)And you can see output as:{('10.30.217.4','10.30.217.62'):{'netmask':'255.255.255.192','option':{'broadcast-address':'10.30.217.63','domain-name':'"con.dcg02.paypalc3.net"','domain-name-servers':'10.190.18.19,10.190.18.20','routers':'10.30.217.1'},'pool':{'failover':('peer','"phx04-dhcp-failover"'),'range':('10.30.217.4','10.30.217.62')},'status':{'Hostname':['host1','host2','host3','host4','host5','host6'],'IPs':['10.30.217.39','10.30.217.5','10.30.217.21','10.30.217.18','10.30.217.56','10.30.217.37'],'IPs defined':59,'IPs free':53,'IPs in use':6,'MACs':['9c:b6:54:aa:78:c3','9c:b6:54:aa:88:9f','9c:b6:54:aa:8b:07','9c:b6:54:ab:b9:eb','9c:b6:54:ab:bb:2f','9c:b6:54:ab:bb:9b']},'subnet':'10.30.217.0'},('10.30.217.68','10.30.217.126'):{'netmask':'255.255.255.192','option':{'broadcast-address':'10.30.217.127','domain-name':'"con.dcg02.paypalc3.net"','domain-name-servers':'10.190.18.19,10.190.18.20','routers':'10.30.217.65'},'pool':{'failover':('peer','"phx04-dhcp-failover"'),'range':('10.30.217.68','10.30.217.126')},'status':{'Hostname':['host13','host14','host15','host16','host17','host18'],'IPs':['10.30.217.86','10.30.217.100','10.30.217.83','10.30.217.114','10.30.217.101','10.30.217.117',],'IPs defined':59,'IPs free':53,'IPs in use':6,'MACs':['9c:b6:54:aa:8f:7b','9c:b6:54:73:60:41','9c:b6:54:aa:8b:93','9c:b6:54:aa:8b:0f','9c:b6:54:aa:8e:bf','9c:b6:54:aa:8b:03']},'subnet':'10.30.217.64'},('10.30.241.164','10.30.241.166'):{'netmask':'255.255.255.248','option':{'broadcast-address':'10.30.241.167','domain-name':'"con.dcg02.paypalc3.net"','domain-name-servers':'10.190.18.19,10.190.18.20','routers':'10.30.241.161'},'pool':{'failover':('peer','"phx04-dhcp-failover"'),'range':('10.30.241.164','10.30.241.166')},'status':{'Hostname':[],'IPs':[],'IPs defined':3,'IPs free':3,'IPs in use':0,'MACs':[]},'subnet':'10.30.241.160'}}Installingdhcpstatus$pipinstalldhcpstatus