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

VB 6 et antérieur Discussion :

Cable réseau connecté ou pas


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 91
    Points : 53
    Points
    53
    Par défaut Cable réseau connecté ou pas
    Bonjour à tous,

    J'ai fait, il y a plusieurs années (sous XP) un petit utilitaire qui me permettait de savoir si le câble réseau était connecté, et/ou si le réseau était activé.
    Pour cela j'utilisais la fonction GetIpAddrTable
    Si la réponse était :
    - Une adresse trouvée et = "127.0.0.1" cela signifiait que le réseau n'était pas activé.
    - Deux adresses trouvées et si l'une = "0.0.0.0" cela signifiait que le réseau était bien activé mais que le câble n'était pas connecté.

    Mais voilà cet utilitaire sous Windows 10 ne fonctionne pas convenablement.
    GetIpAddrTable ne me donne plus les mêmes réponses.
    Si le réseau est activé et si le câble n'est pas connecté, j'obtiens toujours la réponse: Une adresse trouvée et = "127.0.0.1"
    Je n'obtiens plus deux adresses trouvées dont l'une = "0.0.0.0". Donc impossible de savoir si le câble est connecté ou pas.

    Pourtant sous Windows 10, lorsque je vais voir les propriétés de ma connexion Ethernet, il m'indique bien si le réseau est activé ou pas et si le câble est connecté ou pas.
    Il existe donc quelque chose qui permet de connaître cela.
    Si vous avez une piste, je suis preneur.
    Par avance merci

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 126
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 126
    Points : 1 636
    Points
    1 636
    Par défaut
    tu vois l'autre adresse trouvée?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 91
    Points : 53
    Points
    53
    Par défaut
    Si l réseau n'est pas activé et/ou si le câble réseau n'est pas connecté à un autre PC, sous XP j'obtiens, selon les cas, 127.0.0.1 et / ou 0.0.0.0
    Et dans ces cas GetIpAddrTable ne me donne pas l'adresse inscrite (par ex 192.168.0.100).
    Mais ce n'est pas grave car ici le but est de savoir si le réseau est activé et.ou le câble est connecté.
    Mon pb est, que sous Windows 10, si le réseau est activé mais que le câble n'est pas connecté à un autre PC je n'obtiens jamais les deux adresses 0.0.0.0 et 127.0.0.1 mais uniquement 127.0.0.1.
    Donc impossible d'en d'en déduire si le câble est connecté ou pas.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 126
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 126
    Points : 1 636
    Points
    1 636
    Par défaut
    Il faut peut-être utiliser la fonction GetAdaptersAddresses: https://satepadangajo.blogspot.com/2...p-address.html

  5. #5
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 167
    Points
    17 167
    Par défaut
    Salut

    Un vieux code (je ne fais plus de VB6 depuis au moins une quinzaine d'années) qui éventuellement pourrait servir de base
    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    Option Explicit
     
    'code recuperé et adapté depuis cette adresse
    'http://allapi.mentalis.org/apilist/GetNetworkParams.shtml
    'This example was created by George Bernier (bernig@dinomail.qc.ca)
     
    Private Const MAX_HOSTNAME_LEN = 132
    Private Const MAX_DOMAIN_NAME_LEN = 132
    Private Const MAX_SCOPE_ID_LEN = 260
    Private Const MAX_ADAPTER_NAME_LENGTH = 260
    Private Const MAX_ADAPTER_ADDRESS_LENGTH = 8
    Private Const MAX_ADAPTER_DESCRIPTION_LENGTH = 132
    Private Const ERROR_BUFFER_OVERFLOW = 111
     
    Private Type IP_ADDR_STRING
        Next As Long
        IpAddress As String * 16
        IpMask As String * 16
        Context As Long
    End Type
     
    Private Type IP_ADAPTER_INFO
        Next As Long
        ComboIndex As Long
        AdapterName As String * MAX_ADAPTER_NAME_LENGTH
        Description As String * MAX_ADAPTER_DESCRIPTION_LENGTH
        AddressLength As Long
        Address(MAX_ADAPTER_ADDRESS_LENGTH - 1) As Byte
        Index As Long
        Type As Long
        DhcpEnabled As Long
        CurrentIpAddress As Long
        IpAddressList As IP_ADDR_STRING
        GatewayList As IP_ADDR_STRING
        DhcpServer As IP_ADDR_STRING
        HaveWins As Boolean
        PrimaryWinsServer As IP_ADDR_STRING
        SecondaryWinsServer As IP_ADDR_STRING
        LeaseObtained As Long
        LeaseExpires As Long
    End Type
     
    Private Type FIXED_INFO
        HostName As String * MAX_HOSTNAME_LEN
        DomainName As String * MAX_DOMAIN_NAME_LEN
        CurrentDnsServer As Long
        DnsServerList As IP_ADDR_STRING
        NodeType As Long
        ScopeId  As String * MAX_SCOPE_ID_LEN
        EnableRouting As Long
        EnableProxy As Long
        EnableDns As Long
    End Type
     
    Private Declare Function GetNetworkParams Lib "IPHlpApi" (FixedInfo As Any, pOutBufLen As Long) As Long
    Private Declare Function GetAdaptersInfo Lib "IPHlpApi" (IpAdapterInfo As Any, pOutBufLen As Long) As Long
    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
     
    Private Sub Form_Load()
    PenseBete
    End Sub
    Public Sub PenseBete()
        Dim error As Long
        Dim FixedInfoSize As Long
        Dim AdapterInfoSize As Long
        Dim AdapterInfo As IP_ADAPTER_INFO
        Dim Adapt As IP_ADAPTER_INFO
        Dim FixedInfo As FIXED_INFO
        Dim pAdapt As Long
        Dim Buffer2 As IP_ADAPTER_INFO
        Dim FixedInfoBuffer() As Byte
        Dim AdapterInfoBuffer() As Byte
     
        FixedInfoSize = 0
        error = GetNetworkParams(ByVal 0&, FixedInfoSize)
        If error <> 0 Then
            If error <> ERROR_BUFFER_OVERFLOW Then
               MsgBox "GetNetworkParams sizing failed with error " & error
               Exit Sub
            End If
        End If
        ReDim FixedInfoBuffer(FixedInfoSize - 1)
     
        error = GetNetworkParams(FixedInfoBuffer(0), FixedInfoSize)
        If error = 0 Then
                CopyMemory FixedInfo, FixedInfoBuffer(0), Len(FixedInfo)
        Else
                MsgBox "GetNetworkParams failed with error " & error
                Exit Sub
        End If
     
        'Enumerate all of the adapter specific information using the IP_ADAPTER_INFO structure.
        'Note: IP_ADAPTER_INFO contains a linked list of adapter entries.
     
        AdapterInfoSize = 0
        error = GetAdaptersInfo(ByVal 0&, AdapterInfoSize)
        If error <> 0 Then
            If error <> ERROR_BUFFER_OVERFLOW Then
               MsgBox "GetAdaptersInfo sizing failed with error " & error
               Exit Sub
            End If
        End If
       ReDim AdapterInfoBuffer(AdapterInfoSize - 1)
     
    ' Get actual adapter information
       error = GetAdaptersInfo(AdapterInfoBuffer(0), AdapterInfoSize)
       If error <> 0 Then
          MsgBox "GetAdaptersInfo failed with error " & error
          Exit Sub
       End If
       CopyMemory AdapterInfo, AdapterInfoBuffer(0), Len(AdapterInfo)
       pAdapt = AdapterInfo.Next
       Dim DhcpServ As String
       Do While pAdapt <> 0
            CopyMemory Buffer2, AdapterInfo, Len(Buffer2)
            If Buffer2.Type = 71 Then ' pour chez moi OUI, reste a adapter
             DhcpServ = Replace(Buffer2.DhcpServer.IpAddress, Chr(0), "")
             If DhcpServ <> "" Then
              MsgBox "Activé"
              Else
              MsgBox "Desactivé"
             End If
             Exit Do
            End If
            'pour la suite de la boucle pour les autre(s) connexion(s), si le sans fil n'est pas le premier dans la liste
            pAdapt = Buffer2.Next
            If pAdapt <> 0 Then
                CopyMemory AdapterInfo, ByVal pAdapt, Len(AdapterInfo)
            End If
       Loop
    End Sub
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 91
    Points : 53
    Points
    53
    Par défaut
    Merci ProElect pour ton code,
    J'ai dû faire une modif car il n'étudiait que le WIFI.
    Mais malheureusement j'obtiens toujours le même résultat:
    Si le câble n'est pas connecté et que la connexion est activée, la réponse est "Désactivé".
    Si la connexion est désactivée la réponse est "Désactivé".
    Donc impossible de savoir si le câble est connecté ou pas.
    Dommage

    Merci Umfred pour ton lien.
    Petite usine à gaz mais je n'obtiens aucune réponse particulière si le câble est connecté ou pas.

Discussions similaires

  1. Connecté mais pas d'accès web
    Par Morgus dans le forum Réseau
    Réponses: 30
    Dernier message: 03/04/2009, 17h39
  2. Comment se connecter si pas de balises form ou input?
    Par Chris33 dans le forum Réseau/Web
    Réponses: 7
    Dernier message: 29/03/2009, 14h36
  3. Réponses: 0
    Dernier message: 08/11/2008, 19h21
  4. Réponses: 4
    Dernier message: 18/11/2007, 17h37
  5. wifi connecté mais pas de ping
    Par Alfred12 dans le forum Réseau
    Réponses: 6
    Dernier message: 16/05/2007, 15h57

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