IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Detection du port grace à l'adresse IP


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Points : 79
    Points
    79
    Par défaut Detection du port grace à l'adresse IP
    Bonjour,

    Voila j'ai fait une petit code pour détecter si un port est ouvert ou fermé en fonction de l'adresse IP indiquée avec réponse, pour une machine de mon réseau, le problème est que lorsque que je mets le port 21, 25 ou 110 de la machine même si la machine est arrêtée le code me répond qu'elle est en marche.

    J'ai beau tortiller le code je ne comprends pas ce qui se passe ni là ou j'ai merdé ?

    Ma machine n'a que les ports 21, 25, 110.

    Merci d'avance.
    Cordialement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    $ip18 = array('192.168.0.18');
    $port18 = '25';
    $nom18 = 'BROTHER MFC 6494CW';
     
    foreach($ip18 as $cle18=>$adresse_ip18){
     $fp18 = @fsockopen($adresse_ip18, $port18, $errno, $errstr, 1);
             if (!$fp18) {
    echo 'IP : '.$adresse_ip18.' - IMPRIMANTE RESEAU ETHERNET : '.$nom18.' , <strong><font color="red">Arrêter ! </font><br /></strong>';
             } else {
    echo 'IP : '.$adresse_ip18.' - IMPRIMANTE RESEAU ETHERNET : '.$nom18.' , <strong><font color="green">En marche ! </font><br /></strong>';
     
             }
    }
    ?>
    Intel I7 960 | 6 Go Ram | 5 HDD au total 3636 Go | Windows 7 Edition intégral x64 | WampServer 2.0c | Apache 2.2.8 | Php 5.2.6 | MySQL 5.0.51b
    DreamPlug | 512 mo ram | SSD 16 GO | Linux debian 2.6.39.4 | armv5tel | Lamp | PHP 5.3.3-7 | Apache 2.2.16 | Mysql 14.14

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ton code est correct.

    Donc commence par retirer le @, ce qui est toujours une bonne idée quand on debug, et controle ce que vaut $fp18.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Points : 79
    Points
    79
    Par défaut
    Bonjour,

    Cela change rien il ne m'affiche pas de debug :

    IP : 192.168.0.18 - IMPRIMANTE RESEAU ETHERNET : BROTHER MFC 6494CW, En marche !
    Voila ce que vaut $fp18
    je ne comprend pas pourquoi il m'affiche que la machine est en marche si je change dans le code l'IP sur une IP qui n'existe pas sur le réseau avec le port 21 ou 25 ou 110 alors que si je met dans le code l'IP d'un pc existant et change dans le code le port en port 445 il me répond si il est en marche ou arrêter, la c'est correct, par contre si je met dans le code l'adresse IP d'un PC existant sur le port 21, 25 ou 110 il me répond arrêté normal le port est fermé.

    Donc pourquoi les ports 21, 25,110 eux répondent toujours en marche sur une l'adresse IP inexistant dans le réseau alors que sur le port 445 il me répond arrêté.

    Merci.
    Intel I7 960 | 6 Go Ram | 5 HDD au total 3636 Go | Windows 7 Edition intégral x64 | WampServer 2.0c | Apache 2.2.8 | Php 5.2.6 | MySQL 5.0.51b
    DreamPlug | 512 mo ram | SSD 16 GO | Linux debian 2.6.39.4 | armv5tel | Lamp | PHP 5.3.3-7 | Apache 2.2.16 | Mysql 14.14

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as essayé de pinguer l'IP ? De faire une connexion dessus manuellement ?
    Il y a peut être un élément qui répond à la place.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Points : 79
    Points
    79
    Par défaut
    Re,

    Oui j'ai déja testé avec un ping avec aucune perte :

    Pourtant le ping repond quand la machine est en marche et ne repond pas quand elle est arreter, alors de ce fait j'ai utilisé avec un scanner de port reseau genre "Adveced Port Scanner" mais tout est normal.
    Intel I7 960 | 6 Go Ram | 5 HDD au total 3636 Go | Windows 7 Edition intégral x64 | WampServer 2.0c | Apache 2.2.8 | Php 5.2.6 | MySQL 5.0.51b
    DreamPlug | 512 mo ram | SSD 16 GO | Linux debian 2.6.39.4 | armv5tel | Lamp | PHP 5.3.3-7 | Apache 2.2.16 | Mysql 14.14

  6. #6
    Membre averti Avatar de sayari.dev
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2010
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2010
    Messages : 142
    Points : 300
    Points
    300
    Par défaut
    Le manuel PHP est en général une très bonne ressource riche.

    Un coup d'oeil sur le manuel, et tu comprendras.

    Avertissement

    Les sockets UDP semblent quelques fois avoir été ouvertes sans erreur, même si l'hôte distant n'est pas accessible. L'erreur apparaît alors uniquement lorsque vous tentez de lire/écrire sur la socket. La raison de cela est que UDP est un protocole "connectionless", ce qui signifie que le système ne tentera pas d'établir un lien pour la socket tant qu'il ne doit pas recevoir/envoyer de données.
    C'est en faisant n'importe quoi qu'on devient n'importe qui

Discussions similaires

  1. Detecter type port serie (bluetooth ou serial)
    Par ricky78 dans le forum C#
    Réponses: 3
    Dernier message: 02/09/2021, 16h55
  2. Réponses: 5
    Dernier message: 22/04/2013, 08h53
  3. Réponses: 0
    Dernier message: 19/11/2009, 18h49
  4. rediriger un port vers une adresse IP
    Par devlopassion dans le forum Administration
    Réponses: 6
    Dernier message: 04/11/2006, 11h24
  5. Avoir l'IP grace à l'adresse MAC
    Par Argonz dans le forum Développement
    Réponses: 15
    Dernier message: 25/06/2004, 18h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo