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

WinDev Discussion :

Obtenir l'adresse IP utilisée par la connexion au SGBD [WD17]


Sujet :

WinDev

  1. #1
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut Obtenir l'adresse IP utilisée par la connexion au SGBD
    Bonjour,

    je travaille sur un module de log des entrées / sorties des utilisateurs de mon appli de GPAO.

    j'ai une table logg avec les champs suivants :

    log_session_id (int id auto incrément)
    log_uid (lien avec ma table usr.usr_id)
    log_ip_address (l'adresse ip du poste client)
    log_start (date et heure de la connexion initiale)
    log_last_refresh (un agent de mon appli va mettre à jour cette date-heure toutes les 10 minutes)
    log_end (rempli à la déconnexion normale)

    je tiens à garder le champs last_refresh, au cas où perte de connexion ou plantage de l'appli, et je compte faire tourner une procédure planifiée sur mon serveur sql (ou dans l'appli WinDev en même temps que celle qui viendra recalculer le last_refresh), qui viendra mettre une log_end à toutes les lignes dont le last_refresh est plus grand que 12 minutes par exemple (10 minutes plus un delta)

    je pars du principe que tous les postes client ont une horloge système synchronisée avec le même serveur de temps (éventuellement ce pourrait être le serveur sql).

    Toujours est-il que ce problème se présente :

    l'adresse ip qui normalement s'obtient facilement à partir de NetAdresseIP() n'est pas toujours bonne quand on a plusieurs cartes réseau sur son poste, par exemple moi j'ai une carte Virtual-box qui est connectée, et NetAdresseIP me renvoie cette adresse au lieu de mon adresse wifi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Carte Ethernet VirtualBox Host-Only Network :
     
       Suffixe DNS propre à la connexion. . . :
       Adresse IPv6 de liaison locale. . . . .: fe80::35:e759:18f:7255%25
       Adresse IPv4. . . . . . . . . . . . . .: 192.168.56.1
       Masque de sous-réseau. . . . . . . . . : 255.255.255.0
       Passerelle par défaut. . . . . . . . . :
    Comment je peux obtenir à coup sur l'adresse IP que j'utilise pour joindre mon serveur sql (qui sera plus tard sur une machine distante) ?

    Merci bien
    'Diviser chacune des difficultés en autant de parcelles qu’il se pourrait et qu’il serait requis pour les mieux résoudre', René Descartes

    => Maya GPAO

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Bonjour,

    tu as aussi la fonction NetListeAdresseIP() qui te donne toutes les adresses de la machine donc au moins la bonne. Maintenant, pour savoir quelle est celle utilisée par l'application, je ne vois pas comment tu pourrais le savoir autrement qu'en prenant celle qui correspond au plan d'adressage du serveur SQL.

    Bon courage,

    Nicolas

  3. #3
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    J'aurais tendance à privilégié une autre piste. Vu que tu as une base C/S tu as donc un serveur sur lequel tu peux héberger un service. Il me semble préférable, pour garder une trace des postes connectés, de créer un service avec qui chaque application établi une connexion socket lorsqu'elle se lance. Cela résout d'une part le problème de l'adresse IP, mais cela permet aussi de s'abstenir de la procédure planifié qui vérifie en boucle si un poste ne s'est pas planté.
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  4. #4
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut
    @Nicolas_Jeanneau : oui je n'avais pas pensé à cela. Bon comme il est possible que ma connexion soit configurée par nom d'hôte il faudra que je fasse une résolution de nom au cas où, mais oui c'est exactement ce qu'il me fallait.

    @DelphiManiac : je en doute pas que la solution que tu propose soit incontestablement la plus fiable. Mais en fait je n'ai aucune notion de la programmation des sockets, voilà pourquoi je suis parti dans cette voie. Je vais déjà faire fonctionner mon système actuel, avec la procédure planifiée (toutes les 10 minutes c'est pas énorme) et ensuite j'améliorerai avec un service (un exécutable ?) qui se chargera de recenser les connexions (sockets) sur mon serveur SQL.
    'Diviser chacune des difficultés en autant de parcelles qu’il se pourrait et qu’il serait requis pour les mieux résoudre', René Descartes

    => Maya GPAO

  5. #5
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut
    D'ailleurs ça me fait penser que dans le cas où l'on accède au serveur sql par l'intermédiaire d'un vpn (dans mon cas ipsec entre 2 Cisco) on ne se trouve pas toujours dans le même plan d'adressage que le réseau destination, donc pas de point commun entre mon adresse locale, et celle du serveur. Au final, je serai donc bien obligé de passer par un petit agent installé localement sur le serveur.
    'Diviser chacune des difficultés en autant de parcelles qu’il se pourrait et qu’il serait requis pour les mieux résoudre', René Descartes

    => Maya GPAO

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

Discussions similaires

  1. [XL-2007] Obtenir un objet Range utiliser par un objet Series
    Par Bonero dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/10/2012, 18h46
  2. Comment obtenir l'adresse IP de la connexion ?
    Par fplanglois dans le forum Web & réseau
    Réponses: 21
    Dernier message: 07/05/2012, 06h32
  3. Réponses: 2
    Dernier message: 16/07/2009, 11h42
  4. Réponses: 1
    Dernier message: 10/12/2007, 11h54

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