Esempio n. 1
0
int main(int argc, char *argv[], char *envp[]) {
  int soc, size;
  u_char buf[65535];

  if (argc <= 1) {
    fprintf(stderr, "pcap device-name\n");
    return 1;
  }

  if ((soc = InitRawSocket(argv[1], 0, 0)) == -1) {
    fprintf(stderr, "InitRawSocket:error:%s\n", argv[1]);
    return -1;
  }

  while (1) {
    if ((size = read(soc, buf, sizeof(buf))) <= 0)
      perror("read");
    else
      AnalyzePacket(buf, size);
  }

  close(soc);

  return 0;
}
Esempio n. 2
0
int main(int argc, char *argv[], char *envp[])
{
    pthread_t th1, th2, th3;

    getArpCache();

    // Initialize Physical Interface IP Address
    if(chgIfIp(NameDev3, inet_addr(dev3IpAddr))==0) {
        DebugPrintf("Change IP Address\n%s IP: %s\n", NameDev3, dev3IpAddr);
    }

    // Get Interface Infomation
    getIfMac(NameDev1, dev1MacAddr);
    // getIfIp(NameDev1, dev1IpAddr);
    getIfMac(NameDev2, dev2MacAddr);
    //getIfIp(NameDev2, dev2IpAddr);
    getIfMac(NameDev3, dev3MacAddr);
    getIfIp(NameDev3, dev3IpAddr);

    // Init Socket
    if((Device[0].soc=InitRawSocket(NameDev1,1,0))==-1) {
        DebugPrintf("InitRawSocket:error:%s\n",NameDev1);
        return(-1);
    }
    DebugPrintf("%s OK\n",NameDev1);
    if((Device[1].soc=InitRawSocket(NameDev2,1,0))==-1) {
        DebugPrintf("InitRawSocket:error:%s\n",NameDev2);
        return(-1);
    }
    DebugPrintf("%s OK\n",NameDev2);
    if((Device[2].soc=InitRawSocket(NameDev3,1,0))==-1) {
        DebugPrintf("InitRawSocket:error:%s\n",NameDev3);
        return(-1);
    }
    DebugPrintf("%s OK\n",NameDev3);

    DisableIpForward();

    signal(SIGINT,EndSignal);
    signal(SIGTERM,EndSignal);
    signal(SIGQUIT,EndSignal);

    signal(SIGPIPE,SIG_IGN);
    signal(SIGTTIN,SIG_IGN);
    signal(SIGTTOU,SIG_IGN);

    DebugPrintf("Thread Start\n");
    int status;
    if ((status = pthread_create(&th1, NULL, thread1, NULL)) != 0) {
        printf("pthread_create%s\n", strerror(status));
    }
    if ((status = pthread_create(&th2, NULL, thread2, NULL)) != 0) {
        printf("pthread_create%s\n", strerror(status));
    }
    if ((status = pthread_create(&th3, NULL, thread3, NULL)) != 0) {
        printf("pthread_create%s\n", strerror(status));
    }

    pthread_join(th1, NULL);
    pthread_join(th2, NULL);
    pthread_join(th3, NULL);

    close(Device[0].soc);
    close(Device[1].soc);
    close(Device[2].soc);

    return(0);
}
Esempio n. 3
0
int main(int argc,char *argv[],char *envp[])
{
int	soc,size,c,i;
u_char	buf[65535];

	if(argc<=1){
		fprintf(stderr,"pcap device-name\n");
		return(1);
	}

	if((soc=InitRawSocket(argv[1],0,0))==-1){
		fprintf(stderr,"InitRawSocket:error:%s\n",argv[1]);
		return(-1);
	}

	while((c = getopt(argc,argv,"aivctudsA")) != -1){
		switch(c){
			case 'a':
			fil[7] = 1;
			break;
			case 'i':
			fil[6] = 1;
			break;
			case 'v':
			fil[5] = 1;
			break;
			case 'c':
			fil[4] = 1;
			break;
			case 't':
			fil[3] = 1;
			break;
			case 'u':
			fil[2] = 1;
			break;
			case 'd':
			fil[1] = 1;
			break;
			case 's':
			fil[0] = 1;
			break;
			case 'A':
			for(i = 0;i < 8;i++){
				fil[i] = 1;
			}
			break;
			default:
			i = -1;
			printf(" '%s' This option is invalid. prease input any option.\n\n",argv[2]);
			printf("arp = a,ip = i,ipv6 = v,icmp = c\n\ntcp = t,udp = u,destination = d,source = s,all = A \n\n");
			break;
		}
		printf("%d\n",fil[7]);
	}

	if(argv[2] == null)

	while(1){
		if(i == -1){
			break;
		}
		if((size=read(soc,buf,sizeof(buf)))<=0){
			perror("read");
		}
		else{
			AnalyzePacket(buf,size);
		}
	}

	close(soc);

	return(0);
}