⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 setrange.c

📁 智邦网卡测试程序源码(2张网卡pingpong)
💻 C
字号:
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
#include <process.h>
#include <stdlib.h>
#include <graphics.h>
#include "dos.h"
#include "string.h"


typedef unsigned char byte;
FILE  *idbasefile;

int Input_Hex(char *, int );
int Input_Int(char *, int );

void main()
{
   unsigned char c,i;
   unsigned char beginbuffer[12] = {'0','0','0','0','E','8'} ,
                 endbuffer[12] = {'0','0','0','0','E','8'};
   unsigned char temp1[100],temp2[100];
   int select;
   if ( (idbasefile = fopen( "idbase.dat", "r") ) == NULL )
   {
        printf("Cannot Open File : idbase.dat !! \n");
        exit(1);
   }
   clrscr();
   while( (c=fgetc(idbasefile)) != '=');
   printf("BEGIN ID : ");
   for( i=0;i<5;i++ ){
        printf("%c",fgetc(idbasefile));
        printf("%c",fgetc(idbasefile));
        printf("-");
   }
   printf("%c",fgetc(idbasefile));
   printf("%c",fgetc(idbasefile));
   printf("\n");

   while( (c=fgetc(idbasefile)) != '=');
   printf("END   ID : ");
   for( i=0;i<5;i++ ){
        printf("%c",fgetc(idbasefile));
        printf("%c",fgetc(idbasefile));
        printf("-");
   }
   printf("%c",fgetc(idbasefile));
   printf("%c",fgetc(idbasefile));
   printf("\n");


   printf("\nSelect the MAC ID range \n");
   printf("    (1) 00 00 E8   (2) 00 10 B5   (Input 1 or 2) : ");
   if ( Input_Int(temp1,2)==-1) exit(2);
   if ( atoi(temp1)==1)
      select=1;
   else
      select=2;


   printf("\n\nPlease Key in the NEW BEGIN ID : ");
   if (select==1)
     printf("00-00-E8-");
   else
     printf("00-10-B5-");

   if(Input_Hex(temp1,6)==-1) exit(2);
   for (i=0;i<6;i++)
     beginbuffer[6+i]=temp1[i];
// for ( i=3;i<5;i++ ){
//      beginbuffer[2*i]=getche();
//      beginbuffer[2*i+1]=getche();
//      putchar('-');
// }

// beginbuffer[2*i]=getche();
// beginbuffer[2*i+1]=getche();
   printf("\n");

   printf("Please Key in the NEW END   ID : ");
   if (select==1)
     printf("00-00-E8-");
   else
     printf("00-10-B5-");

   if (select==2){
      beginbuffer[0]='0';
      beginbuffer[1]='0';
      beginbuffer[2]='1';
      beginbuffer[3]='0';
      beginbuffer[4]='B';
      beginbuffer[5]='5';
      endbuffer[0]='0';
      endbuffer[1]='0';
      endbuffer[2]='1';
      endbuffer[3]='0';
      endbuffer[4]='B';
      endbuffer[5]='5';
  }

   if(Input_Hex(temp2,6)==-1) exit(2);
   for (i=0;i<6;i++)
     endbuffer[6+i]=temp2[i];
// for ( i=3;i<5;i++ ){
//      endbuffer[2*i]=getche();
//      endbuffer[2*i+1]=getche();
//      putchar('-');
// }
// endbuffer[2*i]=getche();
// endbuffer[2*i+1]=getche();
   printf("\n");

   for (i=6;i<12;i++)
   {
     if (beginbuffer[i]>endbuffer[i])
     {
       printf("\n\n  Begin range is bigger than End range!!! ");
       printf("\n\n  Change range fail and Please input it again!!! ");
       exit(2);
     }
     else
       if (beginbuffer[i]<endbuffer[i])
          break;
   }
   printf("Thee NEW BBEGIN ID : ");
   for ( i=0;i<5;i++ ){
        putchar(toupper(beginbuffer[2*i]));
        putchar(toupper(beginbuffer[2*i+1]));
        putchar('-');
   }
   putchar(toupper(beginbuffer[2*i]));
   putchar(toupper(beginbuffer[2*i+1]));
   printf("\n");


   printf("Thee NEW END    ID : ");
   for ( i=0;i<5;i++ ){
        putchar(toupper(endbuffer[2*i]));
        putchar(toupper(endbuffer[2*i+1]));
        putchar('-');
   }
   putchar(toupper(endbuffer[2*i]));
   putchar(toupper(endbuffer[2*i+1]));
   printf("\n");

   printf("\nAll data in idbase.dat will lost and new ID range will be set!! \n");
   printf("Are you sure ? (y/n) :");

   if ( (c=getche()) == 'y' || c=='Y'){
        fclose(idbasefile);
        if ( (idbasefile = fopen( "idbase.dat", "w") ) == NULL )
        {
                printf("Cannot Open File : idbase.dat !! \n");
                exit(1);
        }
//        fseek(idbasefile,0,0);
        fprintf(idbasefile,"START=");
        for (i=0;i<12;i++)
                fputc(toupper(beginbuffer[i]),idbasefile);
        fputc('\n',idbasefile);

        fprintf(idbasefile,"END  =");
        for (i=0;i<12;i++)
                fputc(toupper(endbuffer[i]),idbasefile);
        fputc('\n',idbasefile);

   }

   fclose(idbasefile);

   exit(0);
}



int Input_Hex(char *getbuf, int length)
{
  int current_x, current_y,j;
  char c;
  unsigned int i;
  current_x=wherex();
  current_y=wherey();
  while(1){
    i=0;
    c=0x20;
    gotoxy(current_x,current_y);
    while(c!=0x0d){
       c=toupper(getch());
       if (c==27)
          return -1;
       if (  (c<0x3a && c>0x2f) || (c<0x47 && c>0x40) || (c<0x67 && c>0x60)){
          // press 0-9, a-f and A-F
         *(getbuf+i)=c;
         i++;
         if (i%2)
           printf("%c",c);
         else
           printf("%c ",c);
       }
       else{
         if (c==0x08){     // press Back Space
            i--;
            if (i>50000)
              i=0;
            gotoxy(current_x,current_y);
            printf("                                                                               ");
            gotoxy(current_x,current_y);
            for(j=0;j<i;j++)
             if(j%2)
               printf("%c ",*(getbuf+j));
             else
               printf("%c",*(getbuf+j));
         }
       }
    }
    if (i==length)
      return 1;
    else
      printf("\n\nInput error and Press any key to continue input!!!");
      getch();
      gotoxy(current_x,current_y);
      printf("                                                                                ");
      printf("                                                                                ");
      printf("                                                                                ");
      printf("                                                                                ");
      printf("                                                                                ");
      gotoxy(current_x,current_y);
 }
}

int Input_Int(char *getbuf, int max)
{
  int current_x, current_y,j;
  char c;
  unsigned int i;
  current_x=wherex();
  current_y=wherey();
  while(1){
    i=0;
    c=0x20;
    gotoxy(current_x,current_y);
    while(c!=0x0d){
       c=toupper(getch());
       if (c==27)
          return -1;
       if (  (c<0x3a && c>0x2f) ){
          // press 0-9
         *(getbuf+i)=c;
         i++;
         printf("%c",c);
       }
       else{
         if (c==0x08){     // press Back Space
            i--;
            if (i>50000)
              i=0;
            gotoxy(current_x,current_y);
            printf("                                                                               ");
            gotoxy(current_x,current_y);
            for(j=0;j<i;j++)
               printf("%c",*(getbuf+j));
         }
       }
    }
    *(getbuf+i)='\0';
    if (atoi(getbuf)<=max && atoi(getbuf)>0 && i!=0)
      return 1;
    else
      printf("\n\nInput error and Press any key to continue input!!!");
      getch();
      gotoxy(current_x,current_y);
      printf("                                                                                ");
      printf("                                                                                ");
      printf("                                                                                ");
      printf("                                                                                ");
      printf("                                                                                ");
      gotoxy(current_x,current_y);
 }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -