static void sendpkg(avl_t *a, int sfd) { if (a != NULL) { int pkglen = 0; int nlen = 0; int vlen = 0; char *str = NULL; pkg *ptr = NULL; sendpkg(a->left, sfd); ptr = (pkg *)a->key; /* Make sure there is room for the \'0' */ nlen = strlen(ptr->name) + 1; vlen = strlen(ptr->version) + 1; /* Include room for the '\n' */ pkglen = nlen + vlen + 1; str = (char *)ec_malloc(sizeof(char) * pkglen, __FILE__, __LINE__); strncpy(str, ptr->name, nlen); strncat(str, "-", 1); strncat(str, ptr->version, vlen); strncat(str, "\n", 1); send(sfd, str, strlen(str), 0); free(str); sendpkg(a->right, sfd); } }
int main ( int argc, char **argv ) { struct timeval tvafter, tvpre; struct timezone tz; gettimeofday ( &tvpre , &tz ); unsigned char mac[7]; unsigned char ip[5]; char dest[16] = {0}; unsigned char broad_mac[7] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00}; memset ( mac, 0, sizeof ( mac ) ); memset ( ip, 0, sizeof ( ip ) ); if ( GetLocalMac ( "eth0", mac, ip ) == -1 ) return ( -1 ); printf ( "Local Mac=[%s] Ip=[%s]\n", mac_ntoa ( mac ), inet_ntoa ( * ( struct in_addr * ) ip ) ); //if ( argc==1 ) return ( -1 ); int i = 0; for(i=1;i<256;i++) { sprintf ( dest,"172.16.0.%d",i ); //sprintf ( dest, "255.255.255.255", i ); sendpkg ( mac, broad_mac, ip, dest ); } gettimeofday ( &tvafter , &tz ); printf ( "\nProgramm finish:%dms\n", ( tvafter.tv_sec - tvpre.tv_sec ) *1000 + ( tvafter.tv_usec - tvpre.tv_usec ) / 1000 ); return 0; }
int main ( int argc,char **argv ) { struct timeval tvafter,tvpre; struct timezone tz; gettimeofday ( &tvpre , &tz ); unsigned char mac[7]; unsigned char ip[5]; //char dip[16]={0}; char dest[16]={0}; unsigned char broad_mac[7]={0xff,0xff,0xff,0xff,0xff,0xff,0x00}; //以太网帧首部的硬件地址填FF:FF:FF:FF:FF:FF表示广播 memset ( mac,0,sizeof ( mac ) ); memset ( ip,0,sizeof ( ip ) ); if ( GetLocalMac ( "eth0",mac,ip ) ==-1 ) return ( -1 ); printf ( "本地 Mac=[%s] Ip=[%s]\n", mac_ntoa ( mac ),inet_ntoa ( * ( struct in_addr * ) ip ) ); //if ( argc==1 ) return ( -1 ); /*sprintf ( dest,"192.168.0.%d",64 ); uint32_t dip= inet_addr("192.168.0.66"); sendpkg (mac,broad_mac,(char *)&dip,dest); /*/ int i=0; for(i=10;i<76;i++){ sprintf ( dest,"202.194.201.%d",i ); sendpkg ( mac,broad_mac,ip,dest ); } /**/ gettimeofday ( &tvafter , &tz ); printf ( "\n程序执行完毕:%d毫秒\n", ( tvafter.tv_sec-tvpre.tv_sec ) *1000+ ( tvafter.tv_usec-tvpre.tv_usec ) /1000 ); return 0; }
int main ( int argc,char **argv ) { struct timeval tvafter,tvpre; struct timezone tz; gettimeofday ( &tvpre , &tz ); unsigned char mac[7]; unsigned char ip[5]; char dest[16]={0}; unsigned char broad_mac[7]={0xff,0xff,0xff,0xff,0xff,0xff,0x00}; //以太网帧首部的硬件地址填FF:FF:FF:FF:FF:FF表示广播 memset ( mac,0,sizeof ( mac ) ); memset ( ip,0,sizeof ( ip ) ); if ( GetLocalMac ( ETH_DEVICE, mac,ip ) ==-1 ) return ( -1 ); //源IP地址设置为网关 // inet_aton ( "202.194.201.254", ( struct in_addr * ) ip ); printf ( "local Mac=[%s] Ip=[%s]\n", mac_ntoa ( mac ),inet_ntoa ( * ( struct in_addr * ) ip ) ); printf("\n"); int i=0; sprintf ( dest,"202.194.201.%d",i ); arp_attack(mac,broad_mac,ip,dest); // int i=0; // while(1) { for(i=200;i<=200;i++) { // getchar(); sprintf ( dest,"202.194.201.%d",i ); /* 源mac * 目的mac * 源ip * 目的ip */ sendpkg ( mac,broad_mac,ip,dest ); // sleep(1); } } gettimeofday ( &tvafter , &tz ); printf ( "\n%dms\n", ( tvafter.tv_sec-tvpre.tv_sec ) *1000+ ( tvafter.tv_usec-tvpre.tv_usec ) /1000 ); return 0; }
void listpkg(db *d, int sfd) { sendpkg(d->pkgtree, sfd); }