![]() |
[C] Port Scanner - Version imprimable +- N-PN White-Hat Project (https://dev.n-pn.fr/forum) +-- Forum : Programmation (https://dev.n-pn.fr/forum/forumdisplay.php?fid=72) +--- Forum : Langages compilés (https://dev.n-pn.fr/forum/forumdisplay.php?fid=25) +--- Sujet : [C] Port Scanner (/showthread.php?tid=2544) |
[C] Port Scanner - sakiir - 22-12-2012 Hello après avoir fais un port scanner en php, je me suis dit pourquoi ne pas le faire en C. Dites moi ce que vous en pensez.. Donne voila ça donne ça: Code C :
#include <stdio.h> Le nouveau : Code C :
RE: [C] Port Scanner - b0fh - 22-12-2012 Hello, C'est un début. Quelques idées d'améliorations pas trop dures pour la prochaine étape: - observer les différentes erreurs pour distinguer les ports fermés des ports firewallés - ajouter une boucle pour scanner plusieurs ports à la suite - ajouter des threads pour faire plusieurs connexions en parallèle RE: [C] Port Scanner - ark - 22-12-2012 Salut, C'est un début. Quelques idées d'améliorations un peu plus dures pour la prochaine étape: - Faire une base de donnée qui contient les services qui tournent habituellement sur ce port. - Faire des recherches sur le type de service qui tourne pour être sur que c'est bien celui trouve dans la bdd. RE: [C] Port Scanner - Creepy_p0ney - 22-12-2012 moi j'avais fait un truc du genre mais un peu salasse : Code C :
RE: [C] Port Scanner - sakiir - 22-12-2012 J'ai eu quelque barriere du genre quand un port est en timeout, ca prend vraiment beaucoup de temps pour le detecter, et encore, il ne le detecte pas, on le sait uniquement si ca prend du temps. Ensuite j'aimerais savoir comment je pourrais savoir si la connexion est refusé, ouverte, ou alors en timeout. RE: [C] Port Scanner - Creepy_p0ney - 22-12-2012 Je suis pas sûr, je vais peut être dire une grosse connerie mais avec perror("connect") ? RE: [C] Port Scanner - b0fh - 22-12-2012 En cas d'erreur tu peux tester la valeur de errno pour savoir quelle erreur s'est produite (timeout ou refused). Les détails sont dans la manpage de connect(). RE: [C] Port Scanner - sakiir - 22-12-2012 Ok il y a une liste ici http://linux.die.net/man/2/connect Mais ces erreur sont retourner je ne comprend pas .. Je dois utiliser errno if(errno == ..) ok merci bofh RE: [C] Port Scanner - gruik - 22-12-2012 cool & merci de partager ton code sakiir ![]() (22-12-2012, 15h30)sakiir a écrit : quand un port est en timeout, ca prend vraiment beaucoup de temps pour le detecter de mémoire faut aller chatouiller la socket à coups de setsockopt() il me semble, et peut être de select() aussi, et en root possiblement... bref en cherchant "connect timeout c" sur google tu dois facilement trouver des exemples de code à mon avis des pistes : http://stackoverflow.com/questions/2597608/c-socket-connection-timeout http://forums.codeguru.com/showthread.php?353217-example-of-SO_RCVTIMEO-using-setsockopt%28%29 http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man2/setsockopt.2.html Citation :Ensuite j'aimerais savoir comment je pourrais savoir si la connexion est refusé, ouverte, ou alors en timeout. ben c'est simple en fait, suffit de tester la valeur de retour de connect(), si la fonction réussi c'est que le port est ouvert, si elle échoue c'est que le port est fermé, et si y'a toujours pas de réponse à la fin du timeout c'est que le port est firewallé (ou qu'il n'y a pas de machine à cette IP évidement) RE: [C] Port Scanner - sakiir - 23-12-2012 merci pour ta réponse gruik ![]() Et bien je vais réecrire le programme avec plus de fonctionnalité dans quelques temps ![]() RE: [C] Port Scanner - sakiir - 25-12-2012 *NEW* Gestion des erreur avec errno : detection Timeout ou Closes |