#include #include #include #include "utils.h" #include #include char *macaddr_to_hex(unsigned char*ptr_to_mac,char*str) //convert mac stream to string { char t[3]; int i ; str[0]=0 ; for(i=0;i<6;i++) { sprintf(t,"%X",ptr_to_mac[i]); if(ptr_to_mac[i]<16)strcat(str,"0"); strcat(str,t); strcat(str,":"); } str[17]=0 ; return str; } char *md5_2_str(char *dest_str,const char *source_md5) //convert md5 16 bits to char { assert(dest_str!=NULL); char temp[3]; int i; char *p = dest_str; //dest_str[0]=0; for(i=4;i<12;i++) //md5 16 bits { sprintf(p,"%02X",source_md5[i]&0xFF); //printf("%02X ",source_md5[i]&0xFF); //memcpy(p,temp,2); p += 2; } *p='\0'; //printf("func res:%s\n",dest_str); return(dest_str); } char*get_cur_datetime(char *curtime) { pthread_mutex_t private_lock=PTHREAD_MUTEX_INITIALIZER ; pthread_mutex_lock(&private_lock); time_t cur_time_t ; struct tm*cur_t=NULL ; cur_time_t=time(NULL); cur_t=localtime(&cur_time_t); sprintf(curtime,"%d-%d-%d %d:%d:%d",cur_t->tm_year+1900, cur_t->tm_mon+1,cur_t->tm_mday,cur_t->tm_hour,cur_t->tm_min,cur_t->tm_sec); return curtime ; } void print_hex(char *bytes_stream,int bytes_size) { assert(bytes_stream!=NULL); int i; for(i=0;i=160)return 0;// char subnetwork[8][20]; char *whitespace = ";"; char *token; int i = 0; for(i=0;i<8;i++)strcpy(subnetwork[i],"");//init it; i = 0; unsigned long int_ip = (unsigned long)ntohl(inet_addr(ip)); //ip in int unsigned long submask=0; unsigned long int_net=0; for (token=strtok(network, whitespace); token!=NULL; token=strtok(NULL, whitespace)) { if(strlen(token)<19)//max subcmd length { strcpy(subnetwork[i],token); //printf("num %d str:%s\n",i,subnetwork[i]); submask = (unsigned long)get_network_submask(subnetwork[i]); int_net = (unsigned long)get_network_network(subnetwork[i]); //printf("ip:%x,submask:%x,net:%x,and:%x\n",int_ip,submask,int_net,int_ip&submask); if((int_ip&submask)==int_net) { //printf("match\n"); return 1; } i++; } } return 0; } unsigned long get_network_submask(char *network) //input 1.1.1.0/24 return FF FF FF 00 { unsigned long submask=0; if(network==NULL)return 0; char temp_net[20]=""; strcpy(temp_net,network); char *p; p = temp_net; int net_len = strlen(network); int i =0; int sub_num=0; while(*p!='/'&&(i