Mac adresse 0.0.0.0.0.0

JLV1975 Messages postés 55 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 15 septembre 2006 - 2 févr. 2005 à 13:44
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 - 3 févr. 2005 à 15:38
Salut,

Ce n'est pas la permière fois que quelqu'un demande ça mais les réponses données ne sont pas claires et je n'ai pas trouvé de solution.

J'utilise un code trouvé sur VBFrance, et sur certains postes de mon parc informatique l'adresse Mac que me renvoit mon prog est 0.0.0.0.0.0.

Avez-vous une explication?

J-L

7 réponses

cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
2 févr. 2005 à 14:15
Je ne sais pas ce que tu utilises comme code mais test ça :

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=44583&lngWId=1

It@li@
0
JLV1975 Messages postés 55 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 15 septembre 2006
2 févr. 2005 à 14:49
Ton prog fonctionne mais il demande WMI, mais WMI n'est pas installé sur tous les postes.

J-L
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
2 févr. 2005 à 15:07
0
JLV1975 Messages postés 55 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 15 septembre 2006
2 févr. 2005 à 15:45
Il ne s'occupe pas de l'adresse Mac, de plus il utilise Winsock.
Je suis chiant mais je ne peux utiliser ni Winsock, ni WMI.

J-L
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
2 févr. 2005 à 20:11
Salut, ton prog agit à distance ou il est installé sur chaque poste ?

Si c'est à distance, va voir du côté SendARP :

http://vbnet.mvps.org/index.html?code/main/tocbyuse.htm

Cordialement, CanisLupus
0
JLV1975 Messages postés 55 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 15 septembre 2006
3 févr. 2005 à 11:47
Il est installé sur chaque poste.

J-L
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
3 févr. 2005 à 15:38
Si c'est sur les postes, alors moi j'utilise ça :

Dans un module

Private Const ERROR_SUCCESS As Long = 0
Private Const MAX_INTERFACE_NAME_LEN As Long = 256
Private Const MAXLEN_IFDESCR As Long = 256
Private Const MAXLEN_PHYSADDR As Long = 8


Private Type MIB_IFROW
wszName(0 To (MAX_INTERFACE_NAME_LEN - 1) * 2) As Byte
dwIndex As Long
dwType As Long
dwMtu As Long
dwSpeed As Long
dwPhysAddrLen As Long
bPhysAddr(0 To MAXLEN_PHYSADDR - 1) As Byte
dwAdminStatus As Long
dwOperStatus As Long
dwLastChange As Long
dwInOctets As Long
dwInUcastPkts As Long
dwInNUcastPkts As Long
dwInDiscards As Long
dwInErrors As Long
dwInUnknownProtos As Long
dwOutOctets As Long
dwOutUcastPkts As Long
dwOutNUcastPkts As Long
dwOutDiscards As Long
dwOutErrors As Long
dwOutQLen As Long
dwDescrLen As Long
bDescr(0 To MAXLEN_IFDESCR - 1) As Byte
End Type


Private Type Infos_Interface
Adresse_MAC As String
Type_Interface As String
Vitesse As String
Description As String
End Type


Public Infos() As Infos_Interface


Private Declare Function GetIfTable _
Lib "iphlpapi.dll" _
( _
ByRef pIfTable As Any, _
ByRef pdwSize As Long, _
ByVal bOrder As Long _
) As Long


Declare Sub CopyMemory _
Lib "kernel32" Alias "RtlMoveMemory" _
( _
pDst As Any, _
pSrc As Any, _
ByVal ByteLen As Long _
)


Public Sub Infos_Carte_Reseau()
Dim IPInterfaceRow As MIB_IFROW
Dim buff() As Byte
Dim cbRequired As Long
Dim nStructSize As Long
Dim nRows As Long
Dim cnt As Long

Call GetIfTable(ByVal 0&, cbRequired, 1)


If cbRequired > 0 Then


ReDim buff(0 To cbRequired - 1) As Byte

If GetIfTable(buff(0), cbRequired, 1) = ERROR_SUCCESS Then

' Sauvegarde de la longueur en octets de IPInterfaceRow
nStructSize = LenB(IPInterfaceRow)


' Nombre d'entrées de la table (nb d'interfaces réseau détectées)
CopyMemory nRows, buff(0), 4

ReDim Infos(nRows)

For cnt = 1 To nRows
DoEvents
' Type d'interface pour chaque entrée de la table
CopyMemory IPInterfaceRow, buff(4 + (cnt - 1) * nStructSize), nStructSize

' Adresse mac
Infos(cnt).Adresse_MAC = Replace(Format(Hex(IPInterfaceRow.bPhysAddr(0)), "@@"), " ", "0") & " " & _
Replace(Format(Hex(IPInterfaceRow.bPhysAddr(1)), "@@"), " ", "0") & " " & _
Replace(Format(Hex(IPInterfaceRow.bPhysAddr(2)), "@@"), " ", "0") & " " & _
Replace(Format(Hex(IPInterfaceRow.bPhysAddr(3)), "@@"), " ", "0") & " " & _
Replace(Format(Hex(IPInterfaceRow.bPhysAddr(4)), "@@"), " ", "0") & " " & _
Replace(Format(Hex(IPInterfaceRow.bPhysAddr(5)), "@@"), " ", "0")

Next cnt

End If

End If

End Sub


Et tu interroges comme ça :

Dim i As Integer
Infos_Carte_Reseau
For i = 1 To UBound(Infos)
MsgBox Infos(i).Adresse_MAC
Next

Explications : il peut y avoir plusieurs cartes réseau, voire des cartes virtuelles. Chez moi, c'est le plus souvent la dernière de la liste qui est la bonne.

Cordialement, CanisLupus
0
Rejoignez-nous