begin process at 2012 02 15 12:03:33
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseau & Internet

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

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


 Information sur la source

Note :
4,5 / 10 - par 4 personnes
4,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Réseau & Internet Niveau :Débutant Date de création :15/09/2003 Date de mise à jour :15/09/2003 23:15:42 Vu / téléchargé :39 242 / 2 808

Auteur : bouv

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (36)
Ajouter un commentaire et/ou une note


 Description

J'annonce cette source n'est pas de moi, mais je ne l'ai pas trouver sur ce site
et elle peut etre très utile. Je l'utilise pour protéger un soft. Avis au amateur.

EXPLICATION POUR LES NOVICES :
Chaque carte réseau possède une adresse MAC unique au monde... Donc si vous livrez votre soft avec une carte réseau et que vous le programmé pour ne travailler qu'avec l'adresse MAC de cette carte... Il est presque imposible de le pirater.
Sauf qu'il est possible de changer l'adresse de certaines cartes (je ne dis évidemment pas comment, certains le savent surement, mais il faut respecter les droits d'auteurs n'est pas ???)

Merci à Watergate pour m'avoir donner l'adresse d'un site où télécharger cette source.

Source

  • téléchargez le zip !
téléchargez le zip !


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source .NET (Dotnet) ADO.NET SANS DOULEUR
Source avec Zip Source avec une capture Source .NET (Dotnet) OCR (UTILISATION DE TESSNET2.DLL)
Source avec Zip Source avec une capture Source .NET (Dotnet) LISTVIEWEX
Source avec Zip Source avec une capture Source .NET (Dotnet) SPAM ANTI SPAM
Source avec Zip Source .NET (Dotnet) UTILISER ADO.NET COMME EN ADO (RECORDSET)

 Sources de la même categorie

Source avec Zip Source avec une capture GESTIONNAIRE DE TÉLÉCHARGEMENT, AVEC REPRISE ET MULTITHREADI... par Madx23
Source avec Zip Source avec une capture CONVERTIR DU TEXTE RTF EN CODE HTML ET VICE-VERSA par vicosta
Source avec Zip Source avec une capture DICTIONAIRE TEXT/AUDIO/VISUELLE ANGLAIS AVEC WEBBROWSER CONT... par majnounmajda
Source avec Zip Source .NET (Dotnet) NSLOOKUP EN VB.NET OU COMMENT FAIRE UNE REQÛETE DNS EN PRÉCI... par ShareVB
Source avec Zip Source avec une capture MINI SEVEUR HTTP AVEC INTERFACE GRAPHIQUE ET IMPLÉMENTATIONS... par lemout

Commentaires et avis

Commentaire de Logan le 16/09/2003 20:34:46

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

Commentaire de malkolinge le 17/09/2003 09:49:47

tu ne peux pas faire ipconfig /all pour avoir ton adresse MAC ?
ton prog est valable que sur la machine où il tourne !!!

Commentaire de bouv le 17/09/2003 13:47:20

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 ?

Commentaire de apxa le 22/09/2003 12:00:14

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 ;)

Commentaire de bouv le 22/09/2003 21:44:41

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+

Commentaire de arrod le 23/09/2003 14:22:15

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

Commentaire de malkolinge le 23/09/2003 14:42:49

je suis d'accord avec arrod.

Commentaire de bouv le 25/09/2003 21:43:14

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 !

Commentaire de neodante le 26/11/2003 16:25:53 administrateur CS

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 !
@+

Commentaire de mbibim le 04/12/2003 20:52:07

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
@+

Commentaire de Egalon le 18/06/2004 15:26:35

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.

Commentaire de hamzus le 07/08/2004 12:14:56

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

Commentaire de Egalon le 09/08/2004 09:01:01

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)

Commentaire de racattac13 le 21/08/2004 12:57:18

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

Commentaire de bouv le 24/09/2004 22:13:00

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
++

Commentaire de bouv le 24/09/2004 22:22:24

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 !!!!!!!!!

Commentaire de bouv le 24/09/2004 22:24:01

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 ?

Commentaire de racattac13 le 25/09/2004 13:18:26

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

Commentaire de racattac13 le 25/09/2004 13:26:29

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

Commentaire de Egalon le 27/09/2004 13:41:09

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à.)

Commentaire de bouv le 27/09/2004 20:04:38

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
++

Commentaire de racattac13 le 30/09/2004 18:12:01

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!

Commentaire de arrod le 30/09/2004 21:13:33



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 .....

Commentaire de JJDai le 06/10/2004 18:12:11

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.

Commentaire de bouv le 07/10/2004 19:51:32

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
++

Commentaire de FootMan51 le 15/10/2004 11:35:27

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.

Commentaire de FootMan51 le 15/10/2004 12:01:30

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.

Commentaire de Philippe PUECH le 24/01/2005 11:01:49

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.

Commentaire de bouv le 24/01/2005 17:54:48

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
++

Commentaire de bliebb le 08/04/2005 20:03:28

'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




Commentaire de mpmp le 31/10/2006 20:28:11

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.

Commentaire de lahoucine0 le 04/08/2007 00:53:01

comment récupérer l'adresse mac sans que la carte réseau soit activé

Commentaire de meghassel le 16/05/2011 14:27:19

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.

Commentaire de 78zerocool le 06/12/2011 16:36:40

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

Commentaire de bouv le 06/12/2011 23:09:15

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.

Commentaire de JJDai le 07/12/2011 18:45:42

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

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,499 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales