dhcp状态的python实现
dhcpstatus的Python项目详细描述
dhcpstatus是dhcpstatus(http://dhcpstatus.sourceforge.net/)的纯python实现, 实现它的大部分功能。
- 使用子网状态操作,dhcpstatus将返回每个子网的IP详细信息。它将提供:
- 为子网定义的IP范围
- 定义要使用的IP总数
- 子网中的可用IP数
- 子网中已用IP的计数
- 从每个子网租用的IP
- 租用IP的主机的MAC地址
- 机器的主机名DHCP IP租给
用法dhcpstatus命令:dhcpstatus\u子网
dhcpstatus安装还附带命令样式的入口点dhcpstatus\u subnet。您可以运行dhcpstatus
在独立cli模式下,使用二进制dhcpstatus_subnet:
$ dhcpstatus_subnet /path/to/dhcp_subnet.conf /path/to/dhcpd.lease
Subnet | Netmask | Low Address | High Address | IPs defined | IPs free | IPs in use | IPs | MACs | Hostname
10.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 | host6
10.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 | host12
10.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 | host17
10.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 | host18
dhcpstatusapi用法
fromdhcpstatusimport*importpprintd=DHCPStatus('/path/to/dhcp_subnet.conf ',' /path/to/dhcpd.lease')status=d.subnet_status()pprint.pprint(status)
或
importdhcpstatusimportpprintd=dhcpstatus.DHCPStatus('/path/to/dhcp_subnet.conf ',' /path/to/dhcpd.lease')status=d.subnet_status()pprint.pprint(status)
您可以看到输出为:
{('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'}}
正在安装dhcpstatus
$ pip install dhcpstatus