[..]Freeze Scanner de port

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
ptifou78
Niveau 3
Niveau 3
Messages : 46
Enregistré le : jeu. 29 avr. 2010 23:11
Status : Hors ligne

[..]Freeze Scanner de port

#1

Message par ptifou78 »

Bonjour tout le monde.
Ceci est mon tout premier post sur ce forum qui ma souvent était d'une grande aide.

Voila je suis en train de faire un scanneur de port(regarde si le port x est ouvert).Pour cela j'envoie une requête TCP grâce a la fonction TCPConnect() mais je rencontre un petit problème.
Quand le port est ouvert la aucun problème la réponse se fait très vite mais lorsque qu'il est fermé le programme freeze puis au bout de 10/15 sec il me dit que le port est fermé ;)

Voici mon code source

Code : Tout sélectionner

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Opt("TCPTimeout",10)
Opt("TrayIconHide",1)
#Region ### START Koda GUI section ### Form=C:\Users\Ptifou78\Desktop\Créa\GUI Scanner.kxf
$Scanner = GUICreate("Scanner By Ptifou78 V0.01", 487, 282, -1, -1)
GUISetFont(8, 400, 0, "Gisha")
$Banniere = GUICtrlCreateLabel("PORT SCANNER BY PTIFOU78", 0, 0, 539, 41)
GUICtrlSetFont(-1, 25, 400, 0, "Neo Bopollux : The Remix")
GUICtrlSetBkColor(-1, 0x800000)
$ip = GUICtrlCreateInput("IP à scanner", 88, 88, 313, 32)
GUICtrlSetFont(-1, 15, 400, 0, "Gisha")
GUICtrlSetCursor (-1, 5)
$Boutton_depart = GUICtrlCreateButton("Commencer à scanner", 160, 200, 185, 49, $WS_GROUP)
GUICtrlSetFont(-1, 12, 400, 0, "Gisha")
GUICtrlSetCursor (-1, 0)
$Port_scann = GUICtrlCreateInput("Port à scanner", 152, 144, 201, 32)
GUICtrlSetFont(-1, 15, 400, 0, "Gisha")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###


While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit

Case $Boutton_depart
    MsgBox(0, "GUI Event", "Scan en cours de l'ip: "&GUICtrlRead($ip)&" du port "&GUICtrlRead($Port_scann)& "")
    TCPStartup()
    $port_scanner = TCPConnect( GUICtrlRead($ip), GUICtrlRead($Port_scann))
    if $port_scanner = -1 Then
    MsgBox(0,"Port Fermé","Le port "&GUICtrlRead($Port_scann)&" de l'ip "&GUICtrlRead($ip)&" est fermé")
    ElseIf @error = 1 Then
    MsgBox(0,"Adresse ip invalide","L'adresse ip "&GUICtrlRead($ip)&" n'est pas valide merci de mettre une bonne ip ")
    ElseIf @error = 2 Then
    MsgBox(0,"Port invalide","Le port "&GUICtrlRead($Port_scann)&" n'est pas valide merci de mettre un port entre 0 et 65535")
    Else
    MsgBox(0,"Port Ouvert","Le port "&GUICtrlRead($Port_scann)&" de l'ip "&GUICtrlRead($ip)&" est ouvert")
    EndIf
    EndSwitch
WEnd
 
C'est mon 1er programme utilisant les sockets en autoit :P
D'avance merci de votre aide :)
Avatar du membre
peuchere83
Niveau 5
Niveau 5
Messages : 169
Enregistré le : mer. 17 déc. 2008 10:50
Status : Hors ligne

Re: [..]Freeze Scanner de port

#2

Message par peuchere83 »

Bonjour,

Peut être plus d'infos ici :
http://www.autoitscript.com/forum/index ... opic=39807

Cordialement
Tous biens que tu possèdes est un souci qui te retient.
Skippy est là pour t'enlever tous tes soucis.
ptifou78
Niveau 3
Niveau 3
Messages : 46
Enregistré le : jeu. 29 avr. 2010 23:11
Status : Hors ligne

Re: [..]Freeze Scanner de port

#3

Message par ptifou78 »

j'ai déjà essayé regarde dans mon code

Code : Tout sélectionner

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
[color=#BF0000]Opt("TCPTimeout",10)[/color]
Opt("TrayIconHide",1)
 
Avatar du membre
peuchere83
Niveau 5
Niveau 5
Messages : 169
Enregistré le : mer. 17 déc. 2008 10:50
Status : Hors ligne

Re: [..]Freeze Scanner de port

#4

Message par peuchere83 »

:oops: j'avais juste fait une recherche sans regarder ton code.

Alors j'ai pas d'idée. Désolé.
Tous biens que tu possèdes est un souci qui te retient.
Skippy est là pour t'enlever tous tes soucis.
Avatar du membre
Voodoo
Niveau 6
Niveau 6
Messages : 298
Enregistré le : ven. 20 juil. 2007 20:45
Status : Hors ligne

Re: [..]Freeze Scanner de port

#5

Message par Voodoo »

Attention à l'utilisation d'un scanner de port. Il ne vaut mieux pas scanner n'importe quel machine.

Ensuite, la fonction TCPstartup() est a appelé UNE seule foi dans ton script, et tu dois penser à fermer proprement les sockets en utilisant TcpCloseSocket. Une fois que tu n'as plus besoin des fonctions Tcp, il faut que tu appelles TCPshutdown().
ptifou78
Niveau 3
Niveau 3
Messages : 46
Enregistré le : jeu. 29 avr. 2010 23:11
Status : Hors ligne

Re: [..]Freeze Scanner de port

#6

Message par ptifou78 »

Comment utiliser la fonction TcpCloseSocket() ???

dans mon cas je devrais mettre entre parenthèse ceci?

Code : Tout sélectionner

TcpCloseSocket($port_scanner)
(j'essaye de comprendre l'aide en anglais mais je galère un peux ^^)
Avatar du membre
Voodoo
Niveau 6
Niveau 6
Messages : 298
Enregistré le : ven. 20 juil. 2007 20:45
Status : Hors ligne

Re: [..]Freeze Scanner de port

#7

Message par Voodoo »

Oui, dans l'aide tu as un petit bout de code exemple qui peut t'être utile si tu ne comprends pas du tout l'anglais.
ptifou78
Niveau 3
Niveau 3
Messages : 46
Enregistré le : jeu. 29 avr. 2010 23:11
Status : Hors ligne

Re: [..]Freeze Scanner de port

#8

Message par ptifou78 »

Toujours le même freeze voici mon code

Code : Tout sélectionner

Case $Boutton_depart
    MsgBox(0, "GUI Event", "Scan en cours de l'ip: "&GUICtrlRead($ip)&" du port "&GUICtrlRead($Port_scann)& "")
    TCPStartup()
    $port_scanner = TCPConnect( GUICtrlRead($ip), GUICtrlRead($Port_scann))
    TcpCloseSocket($port_scanner)
    TCPShutdown()
    if $port_scanner = -1 Then
    MsgBox(0,"Port Fermé","Le port "&GUICtrlRead($Port_scann)&" de l'ip "&GUICtrlRead($ip)&" est fermé")
    ElseIf @error = 1 Then
    MsgBox(0,"Adresse ip invalide","L'adresse ip "&GUICtrlRead($ip)&" n'est pas valide merci de mettre une bonne ip ")
    ElseIf @error = 2 Then
    MsgBox(0,"Port invalide","Le port "&GUICtrlRead($Port_scann)&" n'est pas valide merci de mettre un port entre 0 et 65535")
    Else
    MsgBox(0,"Port Ouvert","Le port "&GUICtrlRead($Port_scann)&" de l'ip "&GUICtrlRead($ip)&" est ouvert")
    EndIf
    EndSwitch
WEnd
De plus je ne sait pas si cela est possible car j'ai un peux regardé sur le forum US mais pareil le même freeze
http://www.autoitscript.com/forum/index ... opic=50236

Donc je pense que soit je n'applique pas la bonne manière pour testé si le port est ouvert soit c'est impossible ^^
Sh4dows
Status : Hors ligne

Re: [..]Freeze Scanner de port

#9

Message par Sh4dows »

Entre tu une IP qui existe ?
Perso j'en est fais un il y a très peu de temps : http://www.megaupload.com/?d=TF2EM1HR
Et je peux t'affirmer que si l'IP n'existe pas effectivement le code plante/freeze !

Donc voilà, pour Google la même chose.
Ils bloquent certainent connexions entrantes...

Cordialement Sh4dows
ptifou78
Niveau 3
Niveau 3
Messages : 46
Enregistré le : jeu. 29 avr. 2010 23:11
Status : Hors ligne

Re: [..]Freeze Scanner de port

#10

Message par ptifou78 »

Shadows c'est le même concours ^^

J'ai regardé ton code source mais oui l'ip existe bien.

Mais j'ai testé que sur mon ip public donc sa pourrais venir de ça? car même ton code freeze quand je teste avec mon ip
Sh4dows
Status : Hors ligne

Re: [..]Freeze Scanner de port

#11

Message par Sh4dows »

Xd Comme on se retrouve :lol:
Perso moi il freeze quasiment pas :mrgreen:
ptifou78
Niveau 3
Niveau 3
Messages : 46
Enregistré le : jeu. 29 avr. 2010 23:11
Status : Hors ligne

Re: [..]Freeze Scanner de port

#12

Message par ptifou78 »

Ba finalement comme t'a pu le voir je l'ai fait en VB6 mais j'aurais aimé savoir pourquoi il freezé mais a mon avis sa doit venir d'autoit lui même ^^
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..]Freeze Scanner de port

#13

Message par Tlem »

Je trouve que votre code est un peut trop superficiel.

Déjà, les champs de saisie pourraient être très nettement améliorés en utilisant un masque de saisie pour l'IP (il existe un contrôle pour cela) et pour le port à scanner, n'autoriser que des nombres positif de 1 à 65556.
Déjà, cela limiterait quelques erreurs possible.

Une barre de status avec l'information sur l'action en cours sera sans nul doute préférable à des boites de dialogue sur lesquelles il faut cliquer. :roll:

Ensuite, une vérification de la validité de l'IP saisie.
Ensuite, une vérification de la disponibilité de l'IP grâce à la commande Ping (qui permet un timeout court).

Une fois toutes ces vérifications faites, vous pourrez utiliser TCPConnect() sans avoir des freezes de malade ...

Amusez vous bien.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
ptifou78
Niveau 3
Niveau 3
Messages : 46
Enregistré le : jeu. 29 avr. 2010 23:11
Status : Hors ligne

Re: [..]Freeze Scanner de port

#14

Message par ptifou78 »

Justement j'ai rendu ce code superficiel pour pouvoir l'écrire ici ^^

Pour la progresse bar je voit pas trop en quoi ceci peut faire baisser le freeze et pour le masque de saisie de l'IP je vient de voir qu'il y avait plusieurs partit dans Koda mais je ne vois toujours pas en quoi cela va changé le freeze ^^

Après pour voir si l'ip est valide je suis d'accord que sa serait bien de vérifié mais quand ça freeze l'ip est bien valide mais je vais essayé avec et je vous tien au courant ^^
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..]Freeze Scanner de port

#15

Message par jchd »

Il y a effectivement un problème avec les timeout sur Ping et les fonctions TCP* qui ne respectent pas vraiment (ou pas du tout) les timeouts définis.

Il y a des tickets en cours sur ces sujets et je pense (j'espère) que l'on verra une résolution rapide de ces soucis.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..]Freeze Scanner de port

#16

Message par Tlem »

ptifou78 a écrit :Pour la progresse bar je voit pas trop en quoi ceci peut faire baisser le freeze
Je n'ai jamais parlé de ProgressBar !!!!
ptifou78 a écrit :pour le masque de saisie de l'IP je vient de voir qu'il y avait plusieurs partit dans Koda mais je ne vois toujours pas en quoi cela va changé le freeze ^^
Je n'ai jamais dit que ca changerait quelque chose sur le freeze !!!
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre