Beispiel #1
0
void putdatos()
{
	printf("\n\t\tpaquete:\t\t\t%d",cabr->paquete);
	printf("\n\t\tindice:\t\t\t\t%d",cabr->indice);
	printf("\n\t\tip:\t\t\t\t");putip(cabr->ip);
	printf("\n\t\tmac:\t\t\t\t");putmac(cabr->mac);
	printf("\n\t\tmascara:\t\t\t");putip(cabr->mascara);
	printf("\n\t\tip publica:\t\t\t");putip(cabr->ippu);
	printf("\n\t\tip puerta enlace:\t\t");putip(cabr->ipenlace);
	printf("\n\t\tmac puerta enlace\t\t");putmac(cabr->macenlace);
}
Beispiel #2
0
int comprueba(unsigned char *ipin,unsigned char *macin)
{
	sprintf(consulta,"select * from ipmac where ip='%d.%d.%d.%d'",ipin[0],ipin[1],ipin[2],ipin[3]);
	if (mysql_query(con,consulta))
		{fprintf(stderr, "%s\n", mysql_error(con));printf("\n\n\t\t\terror mysql");exit(-1);}
	res=mysql_use_result(con);
	while ((row = mysql_fetch_row(res)) != NULL)
	{
		sscanf(row[0],"%d.%d.%d.%d",(int*)&ipm[0],(int*)&ipm[1],(int*)&ipm[2],(int*)&ipm[3]);
		sscanf(row[1],"%x:%x:%x:%x:%x:%x",(unsigned int *)&macm[0],(unsigned int *)&macm[1],(unsigned int *)&macm[2],(unsigned int *)&macm[3],(unsigned int *)&macm[4],(unsigned int *)&macm[5]);
		if(!memcmp(ipin+0,ipm+0,4))
		{
			if(!memcmp(macin+0,macm+0,6))
			{
				mysql_free_result(res);
				return 0;
			}
			printf("\n\nla mac es incorrecta");
			printf("\nip:");putip(ipin);printf("\tmac:");putmac(macin);
			memcpy(cabr->macbase+0,macm+0,6);
			//printf("cabr->macbase====");putmac(cabr->macbase);
			mysql_free_result(res);
			return 1;
		}
	}
	mysql_free_result(res);
	return 3;
}
Beispiel #3
0
int resivearp(sred *cabr,unsigned char *tuip,unsigned char *tumac)
{
        struct timeval start, end;
        double time;
	gettimeofday(&start, NULL);
        while(time<2000)
        {
                int tam;
                tam=recvfrom(cabr->paquete,tramaarprec,48,0,NULL,0);
                if(tam==-1)
                        {perror("\nError al recibir trama");}
                else
                {
                        if(!memcmp(tramaarprec+20,codrespuesta,2)&&!memcmp(tramaarprec+0,cabr->mac,6)&&!memcmp(tramaarprec+28,tuip,4))
                        {
                                memcpy(tumac+0,tramaarprec+6,6);
				printf("\npidiendo mac ala ip ");putip(tuip);printf(" ...");
                                printf("su mac es: ");putmac(tumac);printf("\n");
                                return 0;
                        }
                }
                gettimeofday(&end, NULL);
                time =(end.tv_sec - start.tv_sec)*1000 + (end.tv_usec - start.tv_usec)/1000.0;
        }
	return 1;
}
Beispiel #4
0
void *analisatrama(void *args)
{
	llc *f=cabt;
	int longitud;
	while(1)
	{
		f=cabt;
		while(f!=NULL)
		{
        		printf("\ntrama llc recivida\n\n");
			imprime(f->trama,148);
			memcpy(tumac+0,f->trama+6,6);
                        memcpy(macdes+0,f->trama+0,6);
                        printf("\nmac origen:\t\t");putmac(tumac);
                        printf("\nmac destino:\t\t");putmac(macdes);
                        longitud=(f->trama[12]*256 + f->trama[13] );
                        printf("\nlongitud:\t\t%d",longitud);
                        sap[3]=dsapandssap(f->trama[14],f->trama[15]);
                        //printf("\norigen:\t\t%x",sap[0]);
                        //printf("\ndestino:\t\t%x",sap[1]);
                        sap[4]=innusu(f->trama[16]);
                        if(sap[4]==0||sap[4]==2)
                                chektwobytes(f->trama[16],f->trama[17],0);
                        if(sap[4]==1)
                                chektwobytes(f->trama[16],f->trama[17],1);
                        if(sap[4]==3)
                                chekonebyte(f->trama[16]);
                        while(f->sig==NULL){;}
                        f=f->sig;
                        printf("\n ya ahy otra trama por analisar presione enter porfavor!!");
                        getchar();
                        getchar();
                }
        }
        return("termine de mostrar");
}
Beispiel #5
0
void
regline(int macline, int vconst)
{
	line[0] = c;
	lp = line;
	for(;;) {
		if(c == '\\') {
			*lp = ' ';
			backsl();
			if(c == '%')	/* no blank for hyphenation char */
				lp--;
		}
		if(c == '\n')
			break;
		if(intable && c=='T') {
			*++lp = C;
			if(c=='{' || c=='}') {
				lp[-1] = ' ';
				*lp = C;
			}
		} else {
			if(msflag == 1 && eqnflag == 1) {
				eqnflag = 0;
				*++lp = 'x';
			}
			*++lp = C;
		}
	}
	*lp = '\0';
	if(lp != line) {
		if(wordflag)
			putwords();
		else
		if(macline)
			putmac(line,vconst);
		else
			Bprint(&(bout.Biobufhdr), "%S\n", line);
	}
}