[..] TCP/IP : Vérification des ports.

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

[..] TCP/IP : Vérification des ports.

#1

Message par blacksoul305 »

Bonjour,

aujourd'hui je vais vous demander une aide un peu particulière, puisque les réponses que vous m'apporterez m'aideront à aider quelqu'un d'autre.

J'ai un ami qui a un problème depuis pas mal de temps (huit moins) avec son PC, la plupart des applications utilisant internet ne fonctionnent pas. Il a tout passé au peigne fin, anti-virus, nettoyage avec différents logiciels. On a regardé les différents endroits susceptibles d'être en causes, mais tout semble correct.

Ayant des notions en programmation, et pratiquant les bases du TCP, j'ai réfléchi : si la connexion ne peut pas être établi sur certains logiciels, c'est qu'il y a un problème commun, j'ai trouvé les ports. Il y en a beaucoup, et beaucoup sont utilisés par les grosses applications.

J'ai donc élaboré un programme de test, le voici :
► Afficher le texte
Comme vous pouvez le voir, cela est simple, j'ai d'abord cherché une liste des ports utilisés, apparemment ils se trouveraient entre le port 1 et le port 1023. Il faut savoir qu'il y a 65535 ports de libres... Ensuite, on créé un "socket", regarde si ça s'est bien passé ou non, on met dans le log associé à son test si ça a réussi ou le numéro de l'erreur.

Ainsi, en comparant avec mon PC, voilà nos résultats :

Moi : (sous XP)
  • Numéro du port : Numéro de l'erreur
  • 135 : 10048
  • 139 : 10048
  • 445 : 10013
Lui : (sous seven, mais script adapté (#RequireAdmin))
  • Numéro du port : Numéro de l'erreur
  • 135 : 10013
  • 139 : 10048
  • 445 : 10013
Grâce à la page d'erreurs TCP et la page concernant le port 135, j'ai tiré ces conclusions : toutes les connexions doivent passer par le port 135 qui va après dispatcher la connexion entrante par le port unique qu'elle s'est vue attribuée. Si jamais, mon programme avec les droits administrateurs, ne se voit pas autorisé l'utilisation, et que, sur mon PC à moi, l'erreur est juste une histoire de déjà utilisé, c'est que c'est ce port là qui est en cause.

J'aimerai avoir votre avis. Est-ce mon code qui a un soucis, ou bien est-ce son ordinateur et donc une bonne piste à suivre pour pouvoir régler le problème ?

En vous remerciant d'avance !
Modifié en dernier par blacksoul305 le mer. 27 juin 2012 20:38, modifié 1 fois.
Étudiant en 2ème année de Licence Informatique.
Myki
Niveau 2
Niveau 2
Messages : 20
Enregistré le : lun. 11 juin 2012 16:56
Status : Hors ligne

Re: [..] TCP/IP : Vérification des ports.

#2

Message par Myki »

Salut,

Bien vu ton script ;)

Je pense effectivement qu'il y a un problème avec le port 135.
Normalement, il est utilisé par le service réseau windows appelé svchost.exe et lancé par l'utilisateur SYSTEM de l'OS.
D’où le problème de "permission denied erreur 10013" pour ton ami car il ne doit pas avoir les droits de relancer le service lui même (avec son utilisateur).
Le problème doit être que le service n'est pas démarré.
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..] TCP/IP : Vérification des ports.

#3

Message par Iste »

Je pense sincèrement que vous êtes a coté du problème.

En quoi est-il utile d'écouter des ports ?

Je suis persuadé que les logiciels posant problèmes ne font que du client, et pas du server..

C'est donc normal d'avoir quelque port déja utilisé sur une machine, car comme dit par Myki, windows en utilise déja certain.

Bref, quel softs ne fonctionnent pas ?
Signez ici
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] TCP/IP : Vérification des ports.

#4

Message par blacksoul305 »

Ce test a t-il été utile, j'en sais rien du tout. C'est pourquoi je poste ici pour vous faire part du problème et de mes démarches. Comme je l'ai dis, quand j'ai entendu cette histoire, j'ai dû me résoudre à trouver "pourquoi certaines applis utilisant Internet marchent et d'autres pas ?" Les trucs qui m'ont fait tilter sont les ports !

En fait, j'ai pris la technique d'écouter les ports sans bien réfléchir :? Disons que je pensais que si une application ou autre occupait le port, que l'on cherche à se connecter ou autre, les résultats auraient été les mêmes, le port est utilisé. Maintenant, le script qui va suivre révèle le contraire, c'pourquoi je demande votre aide :)

Vous avez raison Iste, les applications ne sont pas typées serveur, voici une liste de softs :
  • Steam
  • RomStation
  • Quelques jeux en lignes
  • Skype
  • MSN
  • Tout les navigateurs sauf IE 8
Un logiciel de peer to peer ne plante pas : BitTorrent.

Sinon, le code a changé, il est édité dans le premier post. Les résultats sont cependant différents. Une nouvelle erreur apparaît : "10061" sur tout les ports qui ne vérifiaient par d'érreurs auparavant, quand aux autres, j'arrive bien à me connecter dessus. Y compris le 135, 139. A noter que le test est carrément long, je n'ai pas les résultats de mon ami.

Merci pour votre réactivité ! Enfin, merci Miky pour le compliment et de tes informations quant au port 135 et au processus lié.
Étudiant en 2ème année de Licence Informatique.
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..] TCP/IP : Vérification des ports.

#5

Message par Iste »

Et un autre ordi du même réseau peut utiliser ces logiciels ?

Car je ne critique pas le script, et encore moins l'approche (zut ca marche pas, bah on va tester les 65000ports... AutoIt :?: ) J'essaye juste d'aider

Mais je pense pas que AutoIt pourra etre utile du coup. C'est quand même bien de savoir d'ou ne vient pas le problème, ca aide a avancer !
Signez ici
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] TCP/IP : Vérification des ports.

#6

Message par blacksoul305 »

Iste a écrit :Car je ne critique pas le script, et encore moins l'approche (zut ca marche pas, bah on va tester les 65000ports... AutoIt :?: ) J'essaye juste d'aider
Vous en faîtes pas sur ce coup là, ce n'était en aucun cas une critique au contraire, je prend en compte toutes les remarques, tant que celles-ci sont justifiées.

Aussi, je ne veux pas résoudre le problème à l'aide de l'AutoIt, en revanche je voulais m'aider de celui-ci pour pouvoir me concentrer sur un endroit précis. On a mit le problème sur un forum dédié à régler toutes les galères informatiques, et j'avais besoin d'un avis plutôt conséquent sur mon code et sur mon diagnostic tiré, pour voir si mes recherches valaient le coup d'être postées.

Si on arrive tous au même résultat, je clos ce sujet.

Merci encore !
Étudiant en 2ème année de Licence Informatique.
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..] TCP/IP : Vérification des ports.

#7

Message par Iste »

Ha bah coté code, c'est nikel ^^
blacksoul305 a écrit :On a mit le problème sur un forum dédié à régler toutes les galères informatiques
Bonne démarche.

Mais du coup, pour rester dans le sujet, il serait intéressant de pousser le script un peu plus loin :

Un client server sur reseau, local ou pas (en prenant en compte les problématiques de routage bien sur). On identifie manuellement un port qui passe (commençons pas le 80 ^^) via lequel communiquer. Puis le server écoute un a un les ports et prévient le client pour qu'il puisse les tester.

Ca permettrait de généraliser ce test de manière propre, et identifier par simplement les port bridé ou non (dans le cadre par exemple d'une connexion 3g)

A part cela, pour les petites critique sur le code lui même :

Code : Tout sélectionner

GUICtrlSetData($Button3,"Test [color=#FF0000]""listen"""[/color]) ;à éviter, préférez  '"listen"' pour être sûr

Code : Tout sélectionner

$testType = "connecting"; Éviter d'utiliser des chaine pour de la logique pure. Ici un boolean aurait suffit et le code reste claire grace au nom de la variable
Apres c'est juste des problèmes de "pas fait" genre pouvoir couper le test ou choisir l'$IP, mais c'est normal pour un petit code vite fait.

Donc voila, même si ça ne résout pas votre souci, "[..] TCP/IP : Vérification des ports." prendrais vraiment de la valeur si on poussais le problème plus loin ^^
A voir si quelqu’un est motivé pour !
Signez ici
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] TCP/IP : Vérification des ports.

#8

Message par blacksoul305 »

Bonjour,

déjà, merci de vos conseils et remarques à propos du code, aussi :
Iste a écrit :Un client server sur reseau, local ou pas (en prenant en compte les problématiques de routage bien sur). On identifie manuellement un port qui passe (commençons pas le 80 ^^) via lequel communiquer. Puis le server écoute un a un les ports et prévient le client pour qu'il puisse les tester.
[...]
A voir si quelqu’un est motivé pour !
j'avais eu l'idée de le faire. Si j'ai bien compris, je mes un programme serveur sur la machine à tester et, de mon PC, lance l'application client qui se connecte au serveur. Puis, font tout les deux le test sur chaque port de 1 à 1023 c'est ça ? Cette idée me plaisait, je comptais me lancer dans la programmation des deux programmes, mais avant cela, je voulais voir si là où j'allais m'amenait bien quelque part finalement. Apparemment, vous êtes d'accord avec pour dire que ça sera idéal pour cibler le problème, et par la suite, le régler avec d'autres logiciels prévus pour.

Bon, je suis un peu surchargé en ce moment au niveau du code, donc ça sera pas pour maintenant.

Si vous avez des idées, faites-nous en part, ça pourrait grandement nous aider !

Merci de votre participation.
Étudiant en 2ème année de Licence Informatique.
Répondre