TROUVER L'ADRESSE MAC D'UNE CARTE RÉSEAU

Messages postés
99
Date d'inscription
mercredi 2 janvier 2002
Statut
Membre
Dernière intervention
9 juin 2008
- - Dernière réponse : JJDai
Messages postés
291
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
13 mars 2015
- 7 déc. 2011 à 18:45
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/8536-trouver-l-adresse-mac-d-une-carte-reseau

cs_Logan
Messages postés
99
Date d'inscription
mercredi 2 janvier 2002
Statut
Membre
Dernière intervention
9 juin 2008
-
A quoi ça sert de develloper le prog que pour une carte. ça veut dire kil marchera pas chez moi ton soft : c con com truk
cs_malkolinge
Messages postés
10
Date d'inscription
mercredi 11 juin 2003
Statut
Membre
Dernière intervention
24 janvier 2008
-
tu ne peux pas faire ipconfig /all pour avoir ton adresse MAC ?
ton prog est valable que sur la machine où il tourne !!!
bouv
Messages postés
1411
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
-
Petites explications :

1°- Si par exemple tu développe un soft à des fin commerciales (uniquement des petites quantités) tu compil un soft par client (et donc par adresse MAC) et tu protege ton soft... Mieux que toutes les protection de copie CD-ROM, la carte réseau constitue la licence, plus de serial number.

2°- Si, tu peux faire un ipconfig mais tu récupère plein d'info et il faut les trier. La tu obtient juste l'adresse MAC.

D'autres question ?
apxa
Messages postés
188
Date d'inscription
mercredi 15 mai 2002
Statut
Membre
Dernière intervention
25 avril 2009
-
salut,
Comment fais tu si le gars n'a pas de carte réseau ?
Car tout les soft ne requirent pas la necessité d'une carte réseau.
De même si le gars change de carte réseau.
M'enfin je pensait que ton code récupérait la mac address d'un périphérique distant...
mais bon c'est pas grave.
have fun ;)
bouv
Messages postés
1411
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
-
Reponse à Apxa :
1°- Il n'y a pas de raison apparante pour qu'un mec change de carte réseau, mais si c'est le cas je peux lui recompiler pour fonctionner avec sa nouvelle carte.
2°- S'il n'en a pas il peut en acheter une (8 Euros seulement) !!!
3°- Non, je ne pense pas que l'on puisse recuperer une adresse MAC d'un périphérique distant (à voir !!!), mais cela obligerai l'utilisateur à être connecté (plus contraignant).
A+
cs_arrod
Messages postés
4
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
30 septembre 2004
-
Je ne regarde pas le soft car c'est très null !!
dans la base de registre on peut mettre une adresse mac administrative (donc je regarde sur un poste ou ton prog est installé son adresse mac et je la colle sur mon pc) de plus on peut installer un emulateur de carte réseau !!!)
Pour avoir l'adresse mac d'une machine distante voir la cmd nbtstat (voir plus)
Bye bye
cs_malkolinge
Messages postés
10
Date d'inscription
mercredi 11 juin 2003
Statut
Membre
Dernière intervention
24 janvier 2008
-
je suis d'accord avec arrod.
bouv
Messages postés
1411
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
-
Arrod et MalKolinge, c'est pas la peine de vous arreter pour faire des commentaires de ce genre, assez votre chemin. J'ai préciser que la méthode n'est pas imparable pour un utilisateur assez doué.
Cette technique reste quand même une bone protection dans 99% des cas, et elle a également une vocation "EDUCATIVE".
Par ailleurs si on colle la même adresse mac sur plusieurs PC, vous n'êtes pas sans savoir qu'ils ne se reconnaitront plus sur le même réseau !
cs_neodante
Messages postés
2837
Date d'inscription
lundi 11 août 2003
Statut
Modérateur
Dernière intervention
16 décembre 2006
10 -
Pour voir l'adresse mac d'une personne sur un réseau, une requête ARP suffit, même une simple connexion suffit ... m'enfin vous me direz il faut lire l'en-tête de la trame ... ce qui en VB n'est pas du premier ressort de tout le monde ... mais je suis sûr que c'est possible en passant par une DLL ... à méditer aussi !
@+
mbibim
Messages postés
12
Date d'inscription
dimanche 17 février 2013
Statut
Membre
Dernière intervention
23 février 2019
-
salut

est ce quelqu'un sait si je pourrais trouver un logiciel qui emulerait une carte réseau avec une adresse MAC donnée ...


merci d'avance
@+
Egalon
Messages postés
126
Date d'inscription
lundi 26 avril 2004
Statut
Membre
Dernière intervention
17 juin 2011
-
Je m'arrete juste pour dire:

Le titre de cette source est faux:
TROUVER L'ADRESSE MAC D'UNE CARTE RÉSEAU
Ce serait plutot:
rentrer une IP bidon et récupérer sa propre adresse mac.

Salut.
cs_hamzus
Messages postés
1
Date d'inscription
samedi 7 août 2004
Statut
Membre
Dernière intervention
7 août 2004
-
bein salut les gars
jaimerai bien savoir comment trouver l'adress mac du destinataire dans nimporte kel tchat(voila,msn)
bein si vous aurer la gentillesse de mexpliker clairement la facon,et puis si il y a un otr moyen d'en connaitre sans utuliser le VB(pa de progrmme c a dire).
merci de m'aider
a bientot
Egalon
Messages postés
126
Date d'inscription
lundi 26 avril 2004
Statut
Membre
Dernière intervention
17 juin 2011
-
hamzus
Je te répond un peu vite, et je suis pas vraiment certain de ce que je vais te raconter...
Sur un réseau local LAN, Ethetnet ne travaille pas avec l'ip des machines mais avec leur @Mac. Donc je pense que tu peux récupérer çà sans trop de diffultés. Le principe de résolution de correspondance entre IP et MAC s'appelle l'ARP et RARP, et c'est transparent.
Par contre sur la toile s'est différent tout tourne avec des IP, Il faudra donc que de manière programmée tu attaque un PC distant avec une requete ARP. Le HIC s'est que je sais pas si les routeur sur le WEB transmettent ces requetes.

Je peux pas vraiment t'en dire plus. Tu trouveras facilement de la doc sur Google en tapant ARP et RARP

Tschüss.
(PS: pour ceux qui n'habitent pas près de la frontière: Tschüss = Salut en Allemand)
racattac13
Messages postés
62
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
14 février 2010
-
c'est nul
pour avoir son adr mac tapez sous dos
ipconfig/all

-pour afficher les adresse mac du reseau
arp -a

pour spoofer son adresse mac (permet dans un reseau local une attaque du type "man in the middle") il faut créé une adresse mac statique

arp -s mon_ip adr_mac_de_l'autre
bouv
Messages postés
1411
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
-
on dirai que bcp d'entre vous n'ont meme pas regarder la source.
Par ex Egalon >> tu dis

TROUVER L'ADRESSE MAC D'UNE CARTE RÉSEAU
Ce serait plutot:
rentrer une IP bidon et récupérer sa propre adresse mac.

regarde un peu la source et on en reparle.
Tu n'a aucune adresse IP a rentrer. Il te sort simplement toutes les adresses MAC qu'il trouve sur le poste !!!

Quant a l'intéret de la source, je pense que chacun d'entre nous aura un point de vue différent.
Si vous voulez déposez un commentaire constructif allez-y sinon passez votre chemin, votre avis on s'en fou un peu.

sur ce
++
bouv
Messages postés
1411
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
-
au fait quand j'entend des treuc du genre

c'est nul
pour avoir son adr mac tapez sous dos
ipconfig/all

je suis mort de rire. Je rappel que l'on programme sous VB, alors expliquez moi ce qu'une requette DOS vient faire ici ?

Comment va-tu récupérer l'information (de façon fiable) dans ton programme ?

enfin bon, je vois bcp de commentaires de pers qui n'ont meme jamais rien posé ici

Arod, 1 seul mess (selui la) et aucune source.
malkolinge idem
et alors egalon LOL
3 sources :
Conversion d'un string en date sous un format donné (http://www.vbfrance.com/code.aspx?id=25314)
Comptage d'éléments dans un mshflexgrid (http://www.vbfrance.com/code.aspx?id=25217)
Calcul du décalage heure été /hiver en fonction d'une date (http://www.vbfrance.com/code.aspx?id=24735)

Je sais que les miennes ne sont pas toutes au top, mais avant de laisser des messages comme ça regardez un peu vos sources SVP !

Non mais la je suis vraiment MORT DE RIRE !!!!!!!!!
bouv
Messages postés
1411
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
-
un jour j'ai vu un truc du genre
comment faire une message box

Msgbox "Mon Message"

ce ne serait pas l'un d'entre vous par hasard ?
racattac13
Messages postés
62
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
14 février 2010
-
Que fait une requette DOS ici?
si l'on veut jouer sur les mots deja c'est une commande.

Et je met ca pour bien dire que le programme ne sert a rien et que l'on peut trouver plein de commande existante rendant ce service
Et en avance en informatique quand on se repete pas!

Pour hamzus meme si les autre font des mystere a croire que ces des commandes de piratages (pffff, n'importe quoi)

essaye ca sous dos:
nbtstat -A ip_ordi_distant

Au fait tient la liste de commande interessante sous dos tu les tapes sans rien et tu aura le menu des options

ipconfig
ipconfig\all
tracert
net send
net view
netstat
nbtstat
arp
route

voila amuse toi bien
racattac13
Messages postés
62
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
14 février 2010
-
Au fait sans rancune
On m'a moi meme allumer pour certain source surtout la brute force pour touver un passe administrateur (que nix a d'ailleur effacé)

Et j'ai regarder tes autres sources que je trouve interessante mais voila celui la est nul point .<-- le voila
Egalon
Messages postés
126
Date d'inscription
lundi 26 avril 2004
Statut
Membre
Dernière intervention
17 juin 2011
-
bouv
, je m'excuse. J'avais pas compris le but du programme à la base.
Je pensais que le programme demandait une IP et renvoyait la mac correspondante de n'importe qu'elle carte se trouvant sur le réseau.
Maintenant je comprends mieux.
Je crois donc que le programme remplit parfaitement sa fonction.
Sois plus précis dans la description de ton prog.

(Pis pour tes critiques un peu méchantes à mon égard, je te répondrait seulement: "Moi, j'écris les sources que je publie" et on restera là.)
bouv
Messages postés
1411
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
-
Egalon>> Je vois pas comment je peux faire plus simple. Su tu as une carte réseau et que tu veux l'adresse , tu peux utiliser ce bout de code.
De plus, je l'ai précisé, le code n'étais pas présent sur le site et j'ai galéré pour le trouvé, donc je me suis dis que d'autres pouvait en avoir besoins et je l'ai posté c'est tout. Enfin c'est sans rancune, c'est juste que je voulais un peu répondre a tout ces commentaires négatifs. Désolé si tu as pris pour les autres !

Racattac13>>"TU" penses que le logiciel ne sert à rien, c'est ton point de vue et je le respect, mais dans ce cas je prefere que tu dise "Je pense que ton code ne sert à rien" plutot que de l'affirmer.
Encore une fois, si tu veux recuperer une adresse MAC sous VB6, il y a pas 36 solutions : ce bout de code ou les WMI (mieux d'ailleurs). Mais des COMMANDES MSDOS désolé non !
Je connais un TRES GRAND editeur de logiciel pour expert comptable qui te délivre un numero de serie en fonction de ton adresse MAC. Ce qui permet de controler le nombre de licences. Chacun son avis sur ce type de protection.
Enfin ce bout de code peut avoir d'autres applications. Chacun en fait ce qu'il veut.
Enfin bon chacun voit midi a sa porte

Bonne prog
++
racattac13
Messages postés
62
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
14 février 2010
-
Désolé pour "l'affirmation" , bon pour tout dire c'est pas nul mais pour moi meme c'est inutile, et en effet les WMI mieux car plus court, 3 ligne suffisent et pas besoin de compilateur .
A plus!
cs_arrod
Messages postés
4
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
30 septembre 2004
-
1)MSDOS
je vois 3 méthodes pour pour gestion d'io de la console dos:
1.1)la plus nulle : un petit shell et sendkey (merci mais ca plante trop facilement)

1.2)surement possibilite avec APi

1.3)Console Application un petit main et hop classe console et maintenant on gere ce qu'on veut ex: Console.Write .... ( merci visualstudio.NET)

2)MACADRESS
2.1)autrement on peut avoir l'adresse mac avec adsi (wim)(si mininum reseau 2000 ad, je crois)

2.2) api Public Declare Function Netbios Lib "netapi32.dll" (pncb As NET_CONTROL_BLOCK) As Byte

2.3) scan de la base de registre à distance....


Je ne depose pas de code pour eviter de faire redondance avec des sources existants
(certains devraient se regarder) ou de mettre du code piqué à un autre ou que je trouve mon code trop null.

AUTREMENT merci à ceux qui déposent du code car par moment leurs codes sont des bons canevas pour d'autres projets,
et par moment un tres grand gain de temps comment nous le fait rappeler une certaine maxime "Pourquoi réinventer la roue..."

Mais de toute façon je vais des remarques pour que ce soit contrustif et non thanatos
Alors ouvrer votre esprit .....
JJDai
Messages postés
291
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
13 mars 2015
-
Pour repondre à la première observation, non c'est pas con, il m'est arrivé d'avoir à la demande d'un client à installer une appli qui ne tourne que sur ses postes pour ne pas se faire pirater ses fichiers clients et son appli par ses employés (Qu'il sétait fait pirater du reste quelques semaines auparavant par un employé qui a tenter monter sa propre boite).
Alors soyons humble, à toute idée émise, il y a probablement preneur.
bouv
Messages postés
1411
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
-
Merci pour ta remarque JJDai, je pensais qe personne n'avait compris à quoi pouvait servir cette source. Evidemment ce n'est pas exhaustif, il peut y avoir d'autres utilisations.

Bonne prog
++
FootMan51
Messages postés
2
Date d'inscription
mercredi 16 juillet 2003
Statut
Membre
Dernière intervention
15 octobre 2004
-
Pour les mêmes raisons de JJDai, je ne trouve pas ça con du tout.
D'ailleurs j'utilise ce numéro (ou d'autre si il n'y a pas de carte réseau) pour protéger des logiciels depuis au moins 6 ans. A l'origine j'utilise un getAddressMAC() en C, puis il a fallu protéger des logiciels écrit en VB et pour éviter de trimballer une lib, il a fallu ecrire un getAddressMAC() en VB (même algo qu'en C). Mais je viens de m'appercevoir que sur NT4 , je ne recupère plus le numéro de l'adresse MAC (probleme avec Netbios, à voir de plus prêt) en C et en VB, par contre ça fonctionne sur XP, c'est pour ça que je passe sur ce forum.
Pour info, ton programme ne me retoune pas correctement mon adresse MAC. Un exemple concret, "1A" devient "00".
Merci de donner des infos comme celle-ci qui ne servent à rien pour certains, mais pas tout le monde, comme à moi et JJDai par exemple.
Bye.
FootMan51
Messages postés
2
Date d'inscription
mercredi 16 juillet 2003
Statut
Membre
Dernière intervention
15 octobre 2004
-
A remplacer dans ton fichier modMacAdr.bas tout en bas par les lignes suivantes :

tmp = Right("00" & Hex(AST.adapt.adapter_address(0)), 2) & " " & _
Right("00" & Hex(AST.adapt.adapter_address(1)), 2) & " " & _
Right("00" & Hex(AST.adapt.adapter_address(2)), 2) & " " & _
Right("00" & Hex(AST.adapt.adapter_address(3)), 2) & " " & _
Right("00" & Hex(AST.adapt.adapter_address(4)), 2) & " " & _
Right("00" & Hex(AST.adapt.adapter_address(5)), 2)

J'ai une adresse correcte sur mon poste NT et XP.
Encore merci.
Philippe PUECH
Messages postés
4
Date d'inscription
samedi 5 mai 2001
Statut
Membre
Dernière intervention
11 novembre 2005
-
Merci pour le code...mais il me renvoie systématiquement 00 00 00 00 00 00 malgré le correctif donné par FootMan51 et NCB.ncb_lana_num variable (0 à 5). Une idée ? J'ai l'impression que quand on a plusieurs cartes (Wifi, LAN, etc...), ce n'est pas pris en compte.
bouv
Messages postés
1411
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
-
Philippe PUECH>>Désolé aucune idée pour ton pb, comme je l'ai déjà dis ce n'est pas moi qui ai pondu ce code. Cependant entre temps j'ai découvert les WMI. Cherche plutot par la sur ce site j'y ai vu une source trs bien mais je n'ai pas gardé le lien.

Bonne prog
++
cs_bliebb
Messages postés
3
Date d'inscription
jeudi 24 mars 2005
Statut
Membre
Dernière intervention
22 février 2013
-
'Bill Production:
'Exemple Simple qui démontre comment trouver le Mac Adresse pour un REMOTE IP via ARP REQUEST
'Donc parfait pour trouver le MAC d'une adresse IP autre que votre PC !
'Pour le MAC de votre PC utiliser la méthode: IPHlpApi IpAdapterInfo


Option Explicit
Private Const NO_ERROR = 0

Private Declare Function inet_addr Lib "wsock32.dll" _
(ByVal s As String) As Long

Private Declare Function SendARP Lib "iphlpapi.dll" _
(ByVal DestIP As Long, _
ByVal SrcIP As Long, _
pMacAddr As Long, _
PhyAddrLen As Long) As Long

Private Declare Sub CopyMemory Lib "kernel32" _
Alias "RtlMoveMemory" _
(dst As Any, _
src As Any, _
ByVal bcount As Long)



Private Sub Form_Load()''
Text1.Text = "10.1.200.22" 'Adresse IP (LOCAL OU A DISTANCE !)
Text2.Text = ""
Command1.Caption = "Donne moi le MAC pour ce IP"
End Sub


Private Sub Command1_Click()
Dim sRemoteMacAddress As String

If Len(Text1.Text) > 0 Then
If GetRemoteMACAddress(Text1.Text, sRemoteMacAddress, "-") Then
Text2.Text = sRemoteMacAddress
Else
Text2.Text = "(SendARP call ERREUR)"
End If
End If
End Sub


Public Function GetRemoteMACAddress(ByVal sRemoteIP As String, _
sRemoteMacAddress As String, _
sDelimiter As String) As Boolean

Dim dwRemoteIP As Long
Dim pMacAddr As Long
Dim bpMacAddr() As Byte
Dim PhyAddrLen As Long

dwRemoteIP = ConvertIPtoLong(sRemoteIP)
If dwRemoteIP <> 0 Then
PhyAddrLen = 6
GetRemoteMACAddress = False

'Retrouver le Mac pour L'adresse IP ...
If SendARP(dwRemoteIP, 0&, pMacAddr, PhyAddrLen) = NO_ERROR Then

If (pMacAddr <> 0) And (PhyAddrLen <> 0) Then

ReDim bpMacAddr(0 To PhyAddrLen - 1)
CopyMemory bpMacAddr(0), pMacAddr, ByVal PhyAddrLen

sRemoteMacAddress = MakeMacAddress(bpMacAddr(), sDelimiter)
GetRemoteMACAddress = True

End If 'pMacAddr

End If 'SendARP

End If 'dwRemoteIP

End Function


Private Function ConvertIPtoLong(sIpAddress) As Long

ConvertIPtoLong = inet_addr(sIpAddress)

End Function


Private Function MakeMacAddress(b() As Byte, sDelim As String) As String

Dim cnt As Long
Dim buff As String

On Local Error GoTo MakeMac_error

'so far, MAC addresses are
'exactly 6 segments in size (0-5)
If UBound(b) = 5 Then

'concatenate the first five values
'together and separate with the
'delimiter char
For cnt = 0 To 4
buff = buff & Right$("00" & Hex(b(cnt)), 2) & sDelim
Next

'and append the last value
buff = buff & Right$("00" & Hex(b(5)), 2)

End If 'UBound(b)

MakeMacAddress = buff

MakeMac_exit:
Exit Function

MakeMac_error:
MakeMacAddress = "(error building MAC address)"
Resume MakeMac_exit

End Function
cs_mpmp
Messages postés
1
Date d'inscription
dimanche 29 octobre 2006
Statut
Membre
Dernière intervention
31 octobre 2006
-
Merci pour le code...mais il me renvoie systématiquement 00 00 00 00 00 00 malgré le correctif donné par FootMan51 et NCB.ncb_lana_num variable (0 à 5). Une idée ? J'ai l'impression que quand on a plusieurs cartes (Wifi, LAN, etc...), ce n'est pas pris en compte.
lahoucine0
Messages postés
1
Date d'inscription
jeudi 15 mars 2007
Statut
Membre
Dernière intervention
4 août 2007
-
comment récupérer l'adresse mac sans que la carte réseau soit activé
meghassel
Messages postés
2
Date d'inscription
dimanche 8 juillet 2007
Statut
Membre
Dernière intervention
18 mai 2011
-
Bonjour,

J’ai besoin d’un source de programme en c++, vb ou autres pour réinitialiser l’adresse mac car comme vous le savez on peut changer ce numéro très facilement et dans ce cas là le soft peut être pirater.
Il existe l’open source MASHIFT mais il faut que la carte réseau soit nommée Wireless ce qui n’est pas évident, j’ai essayé de changer le source avec Dev c++ et Eclipse mais basta.

Mon Eamil : meghassel_fethi@yahoo.fr

Merci de m’aider.
78zerocool
Messages postés
22
Date d'inscription
jeudi 13 janvier 2011
Statut
Membre
Dernière intervention
20 juillet 2011
-
tres belle copie de vbdevlopez OMG taurai pu dire que ta modifier des com ! et taurai pu metre le nom de l auteur ...
de plus c est innotable ta rien fait !

Comment obtenir l'adresse MAC de la carte réseau ?
[haut]
auteur : Alexandre Lokchine
Une adresse MAC est un identifiant stocké dans une interface réseau. Copiez le code ci-dessous dans un module standard. La fonction GetMACAddress() vous renvoie l'adresse MAC.
vb

Private Const NCBASTAT As Long = &H33
Private Const NCBNAMSZ As Long = 16
Private Const HEAP_ZERO_MEMORY As Long = &H8
Private Const HEAP_GENERATE_EXCEPTIONS As Long = &H4
Private Const NCBRESET As Long = &H32

Private Type NET_CONTROL_BLOCK
'definition du type net control Block
ncb_command As Byte
ncb_retcode As Byte
ncb_lsn As Byte
ncb_num As Byte
ncb_buffer As Long
ncb_length As Integer
ncb_callname As String * NCBNAMSZ
ncb_name As String * NCBNAMSZ
ncb_rto As Byte
ncb_sto As Byte
ncb_post As Long
ncb_lana_num As Byte
ncb_cmd_cplt As Byte
ncb_reserve(9) As Byte
ncb_event As Long
End Type

Private Type ADAPTER_STATUS
'definition du type pour definir le statut de l'adaptateur réseau
adapter_address(5) As Byte
rev_major As Byte
reserved0 As Byte
adapter_type As Byte
rev_minor As Byte
duration As Integer
frmr_recv As Integer
frmr_xmit As Integer
iframe_recv_err As Integer
xmit_aborts As Integer
xmit_success As Long
recv_success As Long
iframe_xmit_err As Integer
recv_buff_unavail As Integer
t1_timeouts As Integer
ti_timeouts As Integer
Reserved1 As Long
free_ncbs As Integer
max_cfg_ncbs As Integer
max_ncbs As Integer
xmit_buf_unavail As Integer
max_dgram_size As Integer
pending_sess As Integer
max_cfg_sess As Integer
max_sess As Integer
max_sess_pkt_size As Integer
name_count As Integer
End Type

Private Type NAME_BUFFER
name As String * NCBNAMSZ
name_num As Integer
name_flags As Integer
End Type

Private Type ASTAT
adapt As ADAPTER_STATUS
NameBuff(30) As NAME_BUFFER
End Type

Private Declare Function Netbios Lib "netapi32" (pncb As NET_CONTROL_BLOCK) As Byte

Private Declare Sub CopyMemory Lib "kernel32" _
Alias "RtlMoveMemory" (hpvDest As Any, ByVal hpvSource As Long, ByVal cbCopy As Long)

Private Declare Function GetProcessHeap Lib "kernel32" () As Long

Private Declare Function HeapAlloc Lib "kernel32" _
(ByVal hHeap As Long, ByVal dwFlags As Long, ByVal dwBytes As Long) As Long

Private Declare Function HeapFree Lib "kernel32" _
(ByVal hHeap As Long, ByVal dwFlags As Long, lpMem As Any) As Long

Public Function GetMACAddress() As String

Dim tmp As String
Dim pASTAT As Long
Dim NCB As NET_CONTROL_BLOCK
Dim AST As ASTAT

NCB.ncb_command = NCBRESET
Call Netbios(NCB)

NCB.ncb_callname = "* "
NCB.ncb_command = NCBASTAT

NCB.ncb_lana_num = 0
NCB.ncb_length = Len(AST)
'allocation de la memoire dans le tas du processus
pASTAT = HeapAlloc(GetProcessHeap(), HEAP_GENERATE_EXCEPTIONS Or _
HEAP_ZERO_MEMORY, NCB.ncb_length)

If pASTAT = 0 Then
Debug.Print "pas assez de mémoire!" 'bon, y a peu de chance que ca arrive :o)
Exit Function
End If

NCB.ncb_buffer = pASTAT
'appel de la fonction netbios qui va nous donner les stats de la carte
'(dont l'adresse MAC)
Call Netbios(NCB)

CopyMemory AST, NCB.ncb_buffer, Len(AST)

tmp = Right$("00" & Hex(AST.adapt.adapter_address(0)), 2) & " " & _
Right$("00" & Hex(AST.adapt.adapter_address(1)), 2) & " " & _
Right$("00" & Hex(AST.adapt.adapter_address(2)), 2) & " " & _
Right$("00" & Hex(AST.adapt.adapter_address(3)), 2) & " " & _
Right$("00" & Hex(AST.adapt.adapter_address(4)), 2) & " " & _
Right$("00" & Hex(AST.adapt.adapter_address(5)), 2)
'désallocation de la mémoire...
HeapFree GetProcessHeap(), 0, pASTAT

GetMACAddress = tmp

End Function
bouv
Messages postés
1411
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
-
78zeroman>>15 commentaires sur tout CS et à peine 2 de constructifs... Ton pseudo est dans le juste tu es un zéro.

Si tu avais lu la description, je précise que cette source n'est pas de moi. Et si je n'ai pas cité l'auteur, c'est parce qu'au moment du dépôt j'avais perdu son nom.

"c est innotable ta rien fait" : oui c'est précisé dans la description, je me contente de proposer un code qui n'était pas disponible sur CS en précisant qu'il n'est pas de moi.

Bref, commences par proposer toi même des codes et j'accepterai ensuite tes critiques.

A bon entendeur...

PS : révises ton Français, il est juste illisible.
JJDai
Messages postés
291
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
13 mars 2015
-
Bonjour:
Bouv perds pas ton temps:
Participations de 78zerocool
Sur tous les sites
0 source , 0 tutoriel CS, 0 tutoriel TS, 0 snippet
0 message (forum)

Et il dit que tu n'as rien fait !!!

JJDai