• 大小: 359KB
    文件类型: .gz
    金币: 1
    下载: 0 次
    发布日期: 2021-06-16
  • 语言: 其他
  • 标签: LinuxDHCP  

资源简介

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

评论

共有 条评论

相关资源