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 :

[VB6]Problème de fonction [Trucs & Astuces]


Sujet :

VB 6 et antérieur

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2004
    Messages : 73
    Points : 35
    Points
    35
    Par défaut [VB6]Problème de fonction
    J'ai trouvé un code pour obtenir l'IP du PC mais j'ai un problème de fonction:

    Je ne sais pas bien utiliser les fonctions, surtout quoi mettre dans les (). et oui, je débute...

    Quelqu'un peut regarder le code et me dire ce qui ne va pas. MERCI

    Ce que j'ai rajouté est une procédure Click Bouton pour afficher l'IP dans un Txt à la fin

    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
    Option Explicit
     
     
    Private Const MAX_ADAPTER_NAME_LENGTH As Long = 256
    Private Const MAX_ADAPTER_DESCRIPTION_LENGTH As Long = 128
    Private Const MAX_ADAPTER_ADDRESS_LENGTH As Long = 8
    Private Const ERROR_SUCCESS As Long = 0
     
    Private Type IP_ADDRESS_STRING
        IpAddr(0 To 15) As Byte
    End Type
     
    Private Type IP_MASK_STRING
        IpMask(0 To 15) As Byte
    End Type
     
    Private Type IP_ADDR_STRING
        dwNext As Long
        IpAddress As IP_ADDRESS_STRING
        IpMask As IP_MASK_STRING
        dwContext As Long
    End Type
     
    Private Type IP_ADAPTER_INFO
        dwNext As Long
        ComboIndex As Long  'reserved
        sAdapterName(0 To (MAX_ADAPTER_NAME_LENGTH + 3)) As Byte
        sDescription(0 To (MAX_ADAPTER_DESCRIPTION_LENGTH + 3)) As Byte
        dwAddressLength As Long
        sIPAddress(0 To (MAX_ADAPTER_ADDRESS_LENGTH - 1)) As Byte
        dwIndex As Long
        uType As Long
        uDhcpEnabled As Long
        CurrentIpAddress As Long
        IpAddressList As IP_ADDR_STRING
        GatewayList As IP_ADDR_STRING
        DhcpServer As IP_ADDR_STRING
        bHaveWins As Long
        PrimaryWinsServer As IP_ADDR_STRING
        SecondaryWinsServer As IP_ADDR_STRING
        LeaseObtained As Long
        LeaseExpires As Long
    End Type
     
    Private Declare Function GetAdaptersInfo Lib "iphlpapi.dll" _
                                             (pTcpTable As Any, pdwSize As Long) As Long
     
    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
                                   (dst As Any, src As Any, ByVal bcount As Long)
     
    Private Function TrimNull(item As String)
     
    Dim pos As Integer
     
    pos = InStr(item, Chr$(0))
    If pos Then
        TrimNull = Left$(item, pos - 1)
    Else
        TrimNull = item
    End If
     
    End Function
     
    Public Function LocalIPAddress() As String
     
    Dim cbRequired  As Long
    Dim buff()      As Byte
    Dim Adapter     As IP_ADAPTER_INFO
    Dim AdapterStr  As IP_ADDR_STRING
    Dim ptr1        As Long
    Dim sIPAddr     As String
    Dim found       As Boolean
     
    GetAdaptersInfo ByVal 0&, cbRequired
     
    If cbRequired > 0 Then
        ReDim buff(0 To cbRequired - 1) As Byte
        If GetAdaptersInfo(buff(0), cbRequired) = ERROR_SUCCESS Then
            ptr1 = VarPtr(buff(0))
            Do While (ptr1 <> 0)
                CopyMemory Adapter, ByVal ptr1, LenB(Adapter)
                With Adapter
                    sIPAddr = TrimNull(StrConv(.IpAddressList.IpAddress.IpAddr, vbUnicode))
                    If Len(sIPAddr) > 0 Then
                        found = True
                        Exit Do
                    End If
                    ptr1 = .dwNext
                End With
            Loop
        End If
    End If
     
    LocalIPAddress = sIPAddr
     
    End Function
     
    'Problème ici
    Private Sub CmdLireIP_Click()
    Dim IP As Variant
    LocalIPAddress() = IP
    TxtIP.Text = IP
    End Sub

  2. #2
    HPJ
    HPJ est déconnecté
    Membre averti

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2003
    Messages : 260
    Points : 364
    Points
    364
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub CmdLireIP_Click() 
    Dim IP As Variant 
    IP = LocalIPAddress 
    TxtIP.Text = IP 
    End Sub
    Lit les tutoriels de ce forum et tu comprendras.
    Avant de poser une question, merci de chercher dans les rubriques suivantes:
    FAQ VB
    Tutoriaux VB
    Recherche avancée sur le forum

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2004
    Messages : 73
    Points : 35
    Points
    35
    Par défaut
    Il y a une erreur:

    Cet argument n'est pas facultatif.
    en pointant : IP = LocalIPAddress

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2004
    Messages : 73
    Points : 35
    Points
    35
    Par défaut
    Par contre, est-ce que ce code extrait bien l'adresse IP de connexion a internet et pas celle de la carte réseaux par exemple?

  5. #5
    HPJ
    HPJ est déconnecté
    Membre averti

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2003
    Messages : 260
    Points : 364
    Points
    364
    Par défaut
    Ce code fonctionne parfaitement mais il ne te renvoie que l'adresse IP de le dernier adaptateur trouvé (carte réseau, modem, ...): pas forcément celle de ta connexion internet.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub CmdLireIP()
    Dim IP As Variant
    IP = LocalIPAddress
    MsgBox IP
    End Sub
    Avant de poser une question, merci de chercher dans les rubriques suivantes:
    FAQ VB
    Tutoriaux VB
    Recherche avancée sur le forum

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2004
    Messages : 73
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par hpj
    Installe le SP5..... si ce n'est déjà fait....
    Je suis sous Win2000... pas sous XP...
    Non je vois pas pourquoi çà ne marche pas chez toi...
    Quelqu'un peux tester sous XP?

  7. #7
    HPJ
    HPJ est déconnecté
    Membre averti

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2003
    Messages : 260
    Points : 364
    Points
    364
    Par défaut
    Même si çà marchait ça ne résoudrait pas ton problème.....
    Avant de poser une question, merci de chercher dans les rubriques suivantes:
    FAQ VB
    Tutoriaux VB
    Recherche avancée sur le forum

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 93
    Points : 44
    Points
    44
    Par défaut
    le code marche sous XP avec VB 6.0

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2004
    Messages : 73
    Points : 35
    Points
    35
    Par défaut
    Pourrais-tu me montrer le code que tu utilises. On doit pas avoir le meme, moi j'ai des erreur de compilation... (voir si dessus) :

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 93
    Points : 44
    Points
    44
    Par défaut
    le code que j'utilise est celui que tu as posté avec la modification de hpj, car avant l modification, ton appel de fonctionn'étais pas correct ( "LocaIPAdress = IP") mais avec la modif le code marche sous XP

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 93
    Points : 44
    Points
    44
    Par défaut
    et poursavoir quoi mettre dans les parenthese des fonctions, je te conseille de télécharger l'API-Guide de allapi.net car il contient un base de bcp d'API avec des explications ( en anglais ) et des exemples

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2004
    Messages : 73
    Points : 35
    Points
    35
    Par défaut
    Okay, j'ai tout repris et effectivement, ca merche mais l'IP est 0.0.0.0



    Quelqu'un sait pourquoi?

    Moi je voudrais récupérer l'IP de connexion internet.

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 93
    Points : 44
    Points
    44
    Par défaut
    tu met un controle winsock sr ta page et le code prend 1 ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Form_Load()
    Text1 = Winsock1.LocalIP
    End Sub
    et normalement ça te renvoie l'IP

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2004
    Messages : 73
    Points : 35
    Points
    35
    Par défaut
    Je te remercie beaucoup

    Merci a tous ceux qui m'ont aider...

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

Discussions similaires

  1. [VB6] Copier un dossier en fonction d'un autre
    Par Sytchev3 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 10/04/2006, 16h39
  2. [VB6] Ajouter un commentaire à une fonction d'une DLL
    Par Ace303 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 05/06/2003, 08h14
  3. [VB6] fonction d' encodage URL en VB
    Par jeanseb dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 14/01/2003, 11h16
  4. [VB6] [Syntaxe] Fonction renvoyant un tableau d'objets
    Par Troopers dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 18/10/2002, 15h33
  5. [VB6]fonction inverse de Hex (nombres hexadécimaux)
    Par Guigui_ dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 08/10/2002, 19h31

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