Fastscannerip

Soyez le premier à donner votre avis sur cette source.

Vue 4 689 fois - Téléchargée 379 fois

Description

FastScannerIP contient 10 Theards

IP : XXX.XXX.XXX.0 à XXX.XXX.XXX.255 dans les 8m, avec l'ADSL

Modifier les paramètres du IP et le port du programme FastScanerIP V0.1
(pour le test ajouter votre IP avec 0 pour le dernier chiffre, et garder le même PORT pour les 2 sources)

A chaque petit son (msg.wav) le programme aura analysé 10 IP
Le son (Téléphone.wav) indique qu'il a trouvé le IP du serveur

On est obligé de rentrer le IP dans la source.
Je n’ai pas encore trouvé de solution pour récupérer les 4 valeurs du IP entre les virgules et ensuite les convertir en int.

Source / Exemple :


Voir le ZIP

Conclusion :


Chaque amélioration de ce programme sera le bien venu,
Merci

Codes Sources

Ajouter un commentaire Commentaires
Messages postés
267
Date d'inscription
lundi 22 septembre 2003
Statut
Membre
Dernière intervention
27 novembre 2005

ouaip, bon ben apparemment, le caractere de fin de chaine (antislash 0) n'est pas affiche ici ...
Messages postés
267
Date d'inscription
lundi 22 septembre 2003
Statut
Membre
Dernière intervention
27 novembre 2005

y'a des trucs qui ont mal passe :

champs[ligne][col] = '' ===> champs[ligne][col] = ''
(utilise 2 fois, c'est "Egale_Apostrophe_AntiSlash_Zero_Apostrophe (au cas ou ca ne repasse pas encore une fois))

if (!IsDigit(IpText[i]) Quitte_... ===> if (!IsDigit(IpText[i])) Quitte_...
(il manque une parenthese apres [i])

sinon tu peux faire un truc du meme genre avec un seul tableau de unsigned char, et en faisant la conversion vers un int quand tu detecte un point

autre solution : utiliser la fonction char * strchr (char *str , int ch);
qui rend un pointeur vers la premiere occurence du caractere ch dans la chaine str, renvoie NULL si le caractere n'est pas trouve

PS : j'avais pas mis les include non plus
#include<ctype.h> // pour isdigit
#include<string.h> // pour strlen
#include<stdlib.h> // pour atoi
Messages postés
334
Date d'inscription
samedi 12 janvier 2002
Statut
Membre
Dernière intervention
3 juillet 2010

Comme je pensais, avec cette façon on à une recherche nettement plus rapide.
Ton code « kimmelf2 » ne fonctionne pas pour récupérer les 4 valeurs entre chaque point.
Le code sera mis a jour des que j’aurais résolu ce problème. Je vais continuer à optimiser la vitesse
Messages postés
334
Date d'inscription
samedi 12 janvier 2002
Statut
Membre
Dernière intervention
3 juillet 2010

Oui,
Pour une calculatrice un point correspond à une virgule. Je me suis trompé, bref c’est bien un point.

Normalement, le FastScannerIP devrai aller encore beaucoup plus vite.

J’ai constaté, ci on regard ci il y a un serveur par l’intermédiaire d’un PING avant d’essayer de se connecté.
On obtient vraiment un temps de réponse plus rapide.
Je vais rajouter ton code et le PING pour savoir ci il y a un SERVEUR.

Voici ce que je vais rajouter, tu en pence quoi ?
http://www.cppfrance.com/code.aspx?ID=10221
Messages postés
267
Date d'inscription
lundi 22 septembre 2003
Statut
Membre
Dernière intervention
27 novembre 2005

Je te file un code au pied leve (j'ai pas teste, mais normallement, ca marche)


#define VIRGULE ','
#define POINT '.'
#define SEPARATEUR POINT

int i;
unsigned char champs[4][4];
int IP[4];
int ligne=0;
int col=0;

for (i=0;i<strlen(IpText);i++)
if (IpText[i]==SEPARATEUR)
{
champs[ligne][col]='';
col=0;
ligne++;
}
else
{
if (!IsDigit(IpText[i]) Quitte_car_le_ieme_caractere_n_est_pas_un_chiffre();
champs[ligne][col]=IpText[i];
col++;
}
champs[ligne][col]=''

for (i=0;i<3;i++)
IP[i] = atoi(champs[i]);

ca devrais marcher .....

-IpText est la chaine de caractere qui contient l'adresse IP au format texte
-la "fonction" quitte_car..... dois etre remplacee par une gestion d'erreur (message + quitte la fonction ou le pgm par exemple ...)
-les define du debut sont la car tu parlais de virgules dans ta description. je pense que tu voulais dire des points, mais je m'adapte.
Afficher les 6 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.