www.pudn.com > snoop.lzh > SNOOP.C


 
#include  
#include  
#include  
#include "pack.h" 
 
FILE *fp; 
 
unsigned short handle; 
unsigned short ra; 
unsigned short rb; 
unsigned long la; 
DRIVERINFO di; 
unsigned char address[6]; 
unsigned char *buf; 
 
void main ( void ) 
{ 
    fp=fopen("DATA.OUT","wt"); 
    if(fp==NULL) 
    { 
        printf("Error creating file DATA.OUT\n"); 
        exit(1); 
    } 
    for(ra=0x60;ra<=0x80;ra++) if(!packetvector(ra)) break; 
    if(ra>0x80) 
    { 
        printf("Packet Driver not found\n"); 
        exit(1); 
    } 
    printf("Packet Driver found at vector 0x%02X\n",ra); 
    usepacketvector(ra); 
 
    ra=driverinfo(0,&di); 
    if(ra) 
    { 
        printf("Driver Info error %04Xh\n",ra); 
        exit(1); 
    } 
    printf("Version %04Xh\n",di.version); 
    printf("class %u\n",di.class); 
    printf("type %u\n",di.type); 
    printf("number %u\n",di.number); 
    printf("name [%s]\n",di.name); 
    printf("functionality %u\n",di.fun); 
 
    la=accesstype(di.class,di.type,di.number,&di.type,0); 
    if(la>0xFFFF) 
    { 
        printf("accesstype() error\n"); 
        exit(1); 
    } 
    handle=la&0xFFFF; 
    printf("handle %04Xh\n",handle); 
    la=getaddress(handle,address,6); 
    if(la) 
    { 
        printf("getaddress error %lXh\n",la); 
    } 
    else 
    { 
        printf("my address is %X:%X:%X:%X:%X:%X\n",address[0],address[1],address[2],address[3],address[4],address[5]); 
    } 
    setrcvmode(handle,6); 
 
    buf=getbufferaddress(); 
    while(1) 
    { 
        if(kbhit()) if(getch()==0x1B) break; 
        if(newbuffer()) 
        { 
            rb=getcountx(); 
            fwrite(&rb,1,2,fp); 
            fwrite(buf,1,rb,fp); 
            printf("%u\n",rb); 
            for(ra=0;ra