71 lines · 1004 B · C
RawDownload
#include "all.h" #include "../ip/ip.h" intchartoea(uchar *ea, char *p){	char buf[3];	int i; 	buf[2] = 0;	for(i = 0; i < Easize; i++){		buf[0] = *p++;		if(buf[0] == 0)			return -1;		buf[1] = *p++;		if(buf[1] == 0)			return -1;		*ea++ = strtoul(buf, 0, 16);		if(*p == ':')			p++;	}	if(*p != 0)		return -1;	return 0;} intchartoip(uchar *pa, char *cp){	int i, c, h; 	for(i=0;;) {		h = 0;		for(;;) {			c = *cp++;			if(c < '0' || c > '9')				break;			h = (h*10) + (c-'0');		}		*pa++ = h;		i++;		if(i == Pasize) {			if(c != 0)				return 1;			return 0;		}		if(c != '.')			return 1;	}} voidgetipa(Ifc *ifc, int a){	memmove(ifc->ipa, ipaddr[a].sysip, Pasize);	memmove(ifc->netgate, ipaddr[a].defgwip, Pasize);	ifc->ipaddr = nhgetl(ifc->ipa);	ifc->mask = nhgetl(ipaddr[a].defmask);	ifc->cmask = ipclassmask(ifc->ipa);	ifc->flag = ipaddr[a].flag;	ifc->idx = a;} intisvalidip(uchar ip[Pasize]){	if(ip[0] || ip[1] || ip[2] || ip[3])		return 1;	return 0;}