- '********************
- '*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 votre feuille:*
- '*********************
- Private Sub Command1_Click()
- Dim cpt As Long
- Dim Resultat_IP As String
- For cpt = 3 To Val(Test) - 1
- Resultat_IP = Resultat_IP & "Adresse IP" & cpt + 1 & " : " & recup_ip(cpt).IPAdr & vbcrl
- Next cpt
- MsgBox Resultat_IP
- End Sub
- Function Test() As Long
- ' recupere le nombre d'interface de la machine
- yop = GetNumberOfInterfaces(4)
- If yop = 0 Then
- Test = 4
- End If
- End Function
-
-
'********************
'*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 votre feuille:*
'*********************
Private Sub Command1_Click()
Dim cpt As Long
Dim Resultat_IP As String
For cpt = 3 To Val(Test) - 1
Resultat_IP = Resultat_IP & "Adresse IP" & cpt + 1 & " : " & recup_ip(cpt).IPAdr & vbcrl
Next cpt
MsgBox Resultat_IP
End Sub
Function Test() As Long
' recupere le nombre d'interface de la machine
yop = GetNumberOfInterfaces(4)
If yop = 0 Then
Test = 4
End If
End Function