dhcp状态的python实现

dhcpstatus的Python项目详细描述


dhcpstatus是dhcpstatus(http://dhcpstatus.sourceforge.net/)的纯python实现, 实现它的大部分功能。

使用子网状态操作,dhcpstatus将返回每个子网的IP详细信息。它将提供:
  1. 为子网定义的IP范围
  2. 定义要使用的IP总数
  3. 子网中的可用IP数
  4. 子网中已用IP的计数
  5. 从每个子网租用的IP
  6. 租用IP的主机的MAC地址
  7. 机器的主机名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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
我可以用C++代码使用java代码吗?   java使用JSR303在派生类中提供更具体的约束   java在这个查找唯一路径数算法中我做错了什么?   java如何为2个不同的服务提供商使用2个不同的SSL证书?   java在Gridview上绘制文本   java使用连接for循环构建字符串名   java StringBuilder拆分无法处理某些文件   java事件关注EditText   Java Web Start“找不到URL的缓存资源”   java程序从命令行运行的速度比在Eclipse中慢   java为什么HttpServletRequest会截断#字符上的url输入?   java自定义折叠工具栏平滑标题大小调整   使用Mockito对安卓 java中调用另一个静态函数的函数进行单元测试   http在java客户机中使用cachecontrol头   java如何使用。是否使用Delimiter从输入文件中排除标点符号和数字?   使用上下文作为参数/参数的java   java更有效地从Jar中提取文件   java为多个JButton提供相同的actionListener