Creer un module et un formulaire avec un bouton.
Source / Exemple :
' ***************************************************
' Dans un module :
' ***************************************************
Public Type RESUL_IP
IPAdr As String
IPMask As String
Interface_Nbre As String
End Type
Public Type DBYTE
unused1 As Byte
unused2 As Byte
End Type
Public Type MIB_IPADDRROW
dwAddr As Long ' IP address
dwIndex As Long ' interface index
dwMask As Long ' subnet mask
dwBCastAddr As Long ' broadcast address
dwReasmSize As Long ' rassembly size
unused1 As DBYTE ' not currently used
unused2 As DBYTE ' not currently used
End Type
Public Type MIB_IPADDRTABLE
dwNumEntries As Long
table(400) As MIB_IPADDRROW
End Type
' recupere le nombre d'interface sur le pc
Public Declare Function GetNumberOfInterfaces Lib "iphlpapi.dll" _
(ByRef PDWORD As Long) As Long
' recupere les adresses IP de la machine
Public Declare Function GetIpAddrTable Lib "iphlpapi.dll" _
(ByRef pIpAddrTable As MIB_IPADDRTABLE, _
ByRef pdwSize As Long, _
bOrder As Boolean) As Long
Public Function FIRST_IPADDRESS(ByVal ipAddress As Long) As Long
FIRST_IPADDRESS = Val("&H" & Left(Right("00000000" & Hex(ipAddress), 8), 2))
End Function
Public Function SECOND_IPADDRESS(ByVal ipAddress As Long) As Long
SECOND_IPADDRESS = Val("&H" & Mid(Right("00000000" & Hex(ipAddress), 8), 3, 2))
End Function
Public Function THIRD_IPADDRESS(ByVal ipAddress As Long) As Long
THIRD_IPADDRESS = Val("&H" & Mid(Right("00000000" & Hex(ipAddress), 8), 5, 2))
End Function
Public Function FOURTH_IPADDRESS(ByVal ipAddress As Long) As Long
FOURTH_IPADDRESS = Val("&H" & Right("00" & Hex(ipAddress), 2))
End Function
Function recup_ip(Num_interface As Long) As RESUL_IP
'recupere l'adresse ip de l'interface passée en paramettre
Dim toto1 As MIB_IPADDRTABLE
Dim toto2 As Long
toto2 = 400
yop1 = GetIpAddrTable(toto1, toto2, True)
recup_ip.IPAdr = FOURTH_IPADDRESS(toto1.table(Num_interface).dwAddr) & "." & _
THIRD_IPADDRESS(toto1.table(Num_interface).dwAddr) & "." & _
SECOND_IPADDRESS(toto1.table(Num_interface).dwAddr) & "." & _
FIRST_IPADDRESS(toto1.table(Num_interface).dwAddr)
recup_ip.IPMask = FOURTH_IPADDRESS(toto1.table(Num_interface).dwMask) & "." & _
THIRD_IPADDRESS(toto1.table(Num_interface).dwMask) & "." & _
SECOND_IPADDRESS(toto1.table(Num_interface).dwMask) & "." & _
FIRST_IPADDRESS(toto1.table(Num_interface).dwMask)
recup_ip.Interface_Nbre = toto1.table(Num_interface).dwIndex
End Function
' ********************************************************
' Dans ton formulaire tu pose un bouton et le code suivant
' ********************************************************
Private Sub Command1_Click()
Dim cpt As Long
Dim Resultat_IP As String
For cpt = 0 To Val(Test) - 1
Resultat_IP = Resultat_IP & "Adresse IP" & cpt + 1 & " : " & recup_ip(cpt).IPAdr & vbcrl
Resultat_IP = Resultat_IP & vbTab & "Mask : " & recup_ip(cpt).IPMask & vbCrLf
Next cpt
MsgBox Resultat_IP
End Sub
Function Test() As Long
' recupere le nombre d'interface de la machine
yop = GetNumberOfInterfaces(toto)
If yop = 0 Then
Test = toto
End If
End Function
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.