资源简介
Linux DHCP图形化管理工具,需要Gcc g++编译器.
可以实现图形化管理dhcp
代码片段和文件信息
/*
* The dhcpd-pools has BSD 2-clause license which also known as “Simplified
* BSD License“ or “FreeBSD License“.
*
* Copyright 2006- Sami Kerola. All rights reserved.
*
* Redistribution and use in source and binary forms with or without
* modification are permitted provided that the following conditions are
* met:
*
* 1. Redistributions of source code must retain the above copyright
* notice this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ‘‘AS IS‘‘ AND
* ANY EXPRESS OR IMPLIED WARRANTIES INCLUDING BUT NOT LIMITED TO THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR AND CONTRIBUTORS OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT INDIRECT INCIDENTAL SPECIAL
* EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT LIMITED TO
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE DATA OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY WHETHER IN CONTRACT STRICT LIABILITY OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation are
* those of the authors and should not be interpreted as representing
* official policies either expressed or implied of Sami Kerola.
*/
/* #include */
#include
#include
#include
#include “dhcpd-pools.h“
/* Clean up data */
int ip_sort(struct leases_t *a struct leases_t *b)
{
if (a->ip < b->ip)
return -1;
if (a->ip > b->ip)
return 1;
return 0;
}
int prepare_data(void)
{
/* Sort leases */
HASH_SORT(leases ip_sort);
return 0;
}
/* Join leases and ranges into couter structs */
int do_counting(void)
{
struct range_t *range_p;
struct leases_t *l;
unsigned long i k block_size;
range_p = ranges;
/* Walk through ranges */
for (i = 0; i < num_ranges; i++) {
/* Count IPs in use */
for (l = leases; l != NULL && range_p->last_ip >= l->ip; l = l->hh.next) {
if (l->ip < range_p->first_ip) {
/* should not be necessary */
continue;
}
/* IP in range */
switch (l->type) {
case ACTIVE:
range_p->count++;
break;
case FREE:
range_p->touched++;
break;
case BACKUP:
range_p->backups++;
break;
}
if (range_p->shared_net) {
switch (l->type) {
case ACTIVE:
range_p->shared_net->used++;
break;
case FREE:
range_p->shared_net->touched++;
break;
case BACKUP:
range_p->shared_net->backups++;
break;
}
}
}
/* Size of range shared net
- 上一篇:QT版QQ登陆框的账号下拉菜单
- 下一篇:数据库-图书管理系统
评论
共有 条评论