📄 setrange.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 + -