Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2281 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  [Réseaux]+[wxWidgets] bonne méthode pour scanner un port ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Réseaux]+[wxWidgets] bonne méthode pour scanner un port ?

n°1539889
trevor
laissez la vie vous étonner...
Posté le 07-04-2007 à 01:38:07  profilanswer
 

l-o
 
Je suis en train de développer une application qui doit me permettre de me connecter aux différents serveurs vns dispos sur mon réseau. Pour cela, j'aimerais scanner mon sous-réseau pour voir quels sont les hôtes dispos.
Je ne sais pas trop quelle méthode est la plus appropriée pour ça... ayant utilisé nmap, je me souviens d'affaire de "connexion TCP initiée" (confirmé par une relecture du man). Alors je tente, mais ça marche pas à tous les coups et sans réel raison... enfin du moins, je n'arrive pas à me les expliquer.
Tout d'abord le code :

Code :
  1. wxIPV4address addrLocale;
  2. wxString reseauLocal;
  3. wxIPV4address addrDistante;
  4. wxArrayString listeServeursVNC;
  5. wxSocketClient sktcltVNC;
  6. //détection du réseau
  7.     this->lstctrlServeursVNC->Clear();
  8. addrLocale.AnyAddress();
  9. addrLocale.Hostname(addrLocale.Hostname()); // récupère l'IP du localhost
  10. reseauLocal = addrLocale.IPAddress().BeforeLast('.'); // sauvegarde l'IP du sous-réseau
  11. this->txtctrllblReseau->SetValue(reseauLocal + ".0" );
  12. //scan du sous-réseau
  13. for(int i=90 ; i<=99 ; i++) {
  14.     wxString addrTest = reseauLocal + "." + wxString::Format("%d", i); // construit l'IP à tester
  15.     addrDistante.Hostname(addrTest);
  16.     addrDistante.Service(5800);
  17.         sktcltVNC.Connect(addrDistante, false); // ouvre un socket sur l'IP distante
  18.         sktcltVNC.WaitOnConnect(0,10); // attends 10ms
  19.         if(sktcltVNC.IsConnected()) listeServeursVNC.Add(addrTest); // stocke l'IP si la connexion a eu lieue
  20.         sktcltVNC.Close();
  21. }
  22.     this->lstctrlServeursVNC->InsertItems(listeServeursVNC, 0);


Comme vous pouvez le voir, je scanne sur la plage [90;99] et ça marche, mais pas à tous les coups. Si je scanne sur une plus grande plage ([80;99]), ça ne marche jamais. J'ai aussi essayé divers temps de connexion (jusqu'à 5 secondes - dans le programme, à 10ms ça marche pas plus mal qu'à 1s)
Je ne comprends pas trop...
Où merde-je ? Ma solution est-elle inadéquate ?
 
Merci d'avance. :)


Message édité par trevor le 07-04-2007 à 01:45:20

---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net
mood
Publicité
Posté le 07-04-2007 à 01:38:07  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  [Réseaux]+[wxWidgets] bonne méthode pour scanner un port ?

 

Sujets relatifs
[cpp] créer un timeout sur une méthodeMéthode pour contribuer a un projet Java
[wxWidgets] constructeur de la classe wxIPV4address ?[Win32]GetTextExtentPoint32 ne me donne pas la bonne largeur de chaîne
bonne pratique pour les jeux de caracteres (ISO 8859-1 / UTF-8 /pspad)[Access] Pilotage scanner et stockage d'image dans Access ?
[wxWidgets] Récupérer toutes les touches enfoncéesCommunication avec port COM
[wxWidgets] bouger la sourisprogrammation port SDIO
Plus de sujets relatifs à : [Réseaux]+[wxWidgets] bonne méthode pour scanner un port ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR