1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
| #include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
char * formatChaine (const char * chaine);
int estIP(const char * chaine);
int main(void)
{
char * chaine;
char result[30];
chaine = (char*) malloc(20);
strcpy(result,"ping -t ");
printf("Ping sur ?\n");
gets(chaine);
chaine = formatChaine(chaine);
if (strcmp(chaine,"thomas")==0)
{
strcat(result,"192.168.1.11");
}
else if (strcmp(chaine,"cecile")==0)
{
strcat(result,"192.168.1.12");
}
else if (estIP(chaine))
{
strcat(result,chaine);
}
else
{
printf("Adresse incorrecte !\n");
system("PAUSE");
exit(0);
}
system(result);
return 0;
}
char * formatChaine (const char * chaine)
{
char * s;
s=(char*)malloc(strlen(chaine));
strcpy(s,chaine);
int i;
for(i = 0; i < strlen(chaine); i++)
{
s[i] = tolower(s[i]);
switch(s[i])
{
case 0x82:
case 0x88:
case 0x89:
case 0x8a: s[i]='e'; break;
case 0xa0:
case 0x83:
case 0x84:
case 0x85:
case 0x86: s[i]='a'; break;
case 0x87: s[i]='c'; break;
case 0x93:
case 0x94:
case 0x95:
case 0xa2: s[i]='o'; break;
case 0x96:
case 0x97:
case 0xa3:
case 0x81: s[i]='u'; break;
default: break;
}
}
return(s);
}
int estIP (const char * chaine)
{
int n1;
int n2;
int n3;
int n4;
int compteurPoint = 0;
int i;
for(i = 0; i < strlen(chaine); i++)
{
if (chaine[i] == '.')
{
compteurPoint++;
}
}
if (compteurPoint !=3)
return 0;
sscanf(chaine,"%d%*[.]%d%*[.]%d%*[.]%d",&n1,&n2,&n3,&n4);
return(192 <= n1 && n1 < 224 && 0 < n2 && n2 < 255 && 0 < n3 && n3 < 255 && 0 < n4 && n4 < 255);
} |
Partager