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

Scripts/Batch Discussion :

Savoir si un nom de service ou un port est utilisé.


Sujet :

Scripts/Batch

  1. #1
    Membre habitué Avatar de arnaud.tlse
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 115
    Points : 126
    Points
    126
    Par défaut Savoir si un nom de service ou un port est utilisé.
    Bonjour à tous,

    Après un bref sujet dans la rubrique MySQL, je viens vers vous pour savoir s'il existe des commandes, pour savoir si un service porte un certain nom, et si un numéro de port est utilisé.

    Je souhaite faire une installation de MySQL Server, mais si une autre version est déjà installée, le nom de service "MySQL" sera déjà utilisé, et si la configuration est par défaut, le port 3306 sera également utilisé.

    Je cherche donc une façon de tester si le nom de service que je veux donner à mon instance de serveur existe déjà, dans quel cas j'en choisis un autre, et un moyen de tester si un port est utilisé, afin d'en choisir un autre pour mon installation également.

    Merci à toutes et à tous.

    Arnaud.

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Sous Unix, tu peux utiliser l'utilitaire nmap, pas forcément diposnible de base.
    Il te permet entre autre, de tester si un port est utilisé et par quel service.

    Exemple: nmap localhost -p 7002

    Teste sur la machine locale le port 7002.

  3. #3
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Pour le numéro de port : "telnet localhost 3306" et tu analyses à l'oeil le résultat
    Pour le service : "sc query mysql" et tu analyses à l'oeil le résultat

  4. #4
    Membre éprouvé
    Avatar de matrix788
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    740
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 740
    Points : 1 056
    Points
    1 056
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    Puisque tu es sous windows, nmap faudrait que tu le télécharges.

    En natif, tu as netstat -na qui est trés bien.

  5. #5
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Effectivement on est dans la rubrique windows

  6. #6
    Membre habitué Avatar de arnaud.tlse
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 115
    Points : 126
    Points
    126
    Par défaut
    Merci beaucoup pour vos réponses (super rapides faut l'avouer) !

    Ok pour sc query NomDuService, ça fonctionne niquel j'arrive à faire le traitement que je veux derrière.

    En ce qui concerne le port, netstat -na fonctionne parfaitement aussi, mais si maintenant je voulais obtenir un numéro de port non utilisé, de façon aléatoire (car il y en a un paquet). Comment je pourrais faire ?
    Est-ce que je dois en choisir un au pif dans la liste de tous les port moins ceux utilisés (dont j'ai la liste avec netstat) ou est-ce qu'une commande peut me mâcher le travail en me sortant ceux qui sont libres, et que j'en choisisse un au pif par la suite moi même ?

  7. #7
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    • tu prends 3306 (puisque c'est MySQL) et tu testes
    • si le port est occupé, tu fais +1 et tu testes jusqu'à trouver un port libre

  8. #8
    Membre chevronné
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Points : 1 991
    Points
    1 991
    Par défaut
    Citation Envoyé par matrix788 Voir le message

    En natif, tu as netstat -na qui est trés bien.
    salut,

    pour ma part j'utilise netstat de cette façon :

    je trouve que c'est plus complet

  9. #9
    Membre habitué Avatar de arnaud.tlse
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 115
    Points : 126
    Points
    126
    Par défaut
    Okay merci pour toute vos réponses, j'ai résolu ça par un programme en C.

    On n'est pas dans un forum de langage C, mais bon je le met ici quand même, après tout ça résout mon problème système

    Le programme suppose qu'on a lancé la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    netstat -na > usedPorts.txt
    qui remplis le fichier texte avec le résultat de la commande netstat, on a ainsi la liste des ports utilisés.
    Ensuite y a plus qu'à checker avec le programme les ports en commençant à partir du 3306 et ainsi de suite jusqu'à ce qu'on en trouve un un libre.

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int isFree ( FILE* file, char* tab ) ;
    
    int main ()
    {
        FILE* f ;
        int num = 3306 ;
        char buf[5] ;
    
        itoa ( num, buf, 10 ) ;
    
        char* fileName = "usedPorts.txt" ;
    
        f = fopen ( fileName, "r" ) ;
        if ( f == NULL )
            return 0 ;
    
        while ( isFree ( f, buf ) != 0 )
        {
            num = num + 1 ;
            itoa ( num, buf, 10 ) ;
        }
    
        fclose ( f ) ;
        printf ( "%d", num ) ;
    
        return num ;
    }
    
    int isFree ( FILE* file, char* tab )
    {
        char c ;
        int found = 0 ;
        int pos = 0 ;
        int length ;
    
        length = strlen ( tab ) ;
    
        while( fread ( &c, 1, 1, file )>0 && !found )
        {
            if ( c == tab[pos] )
            {
                pos++ ;
            }
            else
            {
                if ( pos != 0 )
                {
                    // On doit rembobiner !
                    fseek ( file, -pos ,SEEK_CUR );
                    pos = 0 ;
                }
            }
            found = ( pos == length ) ;
        }
        return found ;
    }
    Surement pas optimisé mais bon hein, je suis pas expert en C

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment savoir si un nom de domaine est protégé ?
    Par The Molo dans le forum Droit
    Réponses: 5
    Dernier message: 22/05/2008, 09h02
  2. Réponses: 1
    Dernier message: 01/02/2008, 18h21
  3. Connaitre les noms de service du listener
    Par zezitinho dans le forum Installation
    Réponses: 5
    Dernier message: 21/12/2007, 14h10
  4. Réponses: 1
    Dernier message: 18/12/2005, 19h19
  5. Obtenir le nom des services qui tournent ...
    Par vbcasimir dans le forum Administration système
    Réponses: 4
    Dernier message: 21/01/2004, 17h32

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