Excel : Macro pour récupération de l'adresse de carte réseau

Excel : Macro pour récupération de l'adresse de carte réseau - VB/VBA/VBS - Programmation

Marsh Posté le 22-03-2005 à 12:20:27    

J'ai un fichier sous excel dont je voudrai limiter la diffusion à certaines personnes, mais aussi que celles-ci ne puissent pas le communiquer à d'autres sans mon accord.
L'utilisation d'un mot de passe n'est donc pas la solution.
Pour cela j'ai pensé utiliser leur adresse de la carte réseau (Imac) afin qu'il ne puisse pas l'utiliser sur un autre pc que celui pour lequel j'ai délivré l'autorisation.
 
Comment récupérer l'adresse Mac de la carte réseau ?
 
Si quelqu'un posséde la macro ou peut me l'écrire ce sera sympa car mes connaissances sont actuellement celle d'un débutant en macro.
 
Merci d'avance.

Reply

Marsh Posté le 22-03-2005 à 12:20:27   

Reply

Marsh Posté le 22-03-2005 à 20:42:40    

Source : microsoft.com
Dans un module

Code :
  1. Public Const NCBASTAT As Long = &H33
  2. Public Const NCBNAMSZ As Long = 16
  3. Public Const NCBRESET As Long = &H32
  4. Public Type NET_CONTROL_BLOCK
  5.     ncb_command As Byte
  6.     ncb_retcode As Byte
  7.     ncb_lsn As Byte
  8.     ncb_num As Byte
  9.     ncb_buffer As Long
  10.     ncb_length As Integer
  11.     ncb_callname As String * NCBNAMSZ
  12.     ncb_name As String * NCBNAMSZ
  13.     ncb_rto As Byte
  14.     ncb_sto As Byte
  15.     ncb_post As Long
  16.     ncb_lana_num As Byte
  17.     ncb_cmd_cplt As Byte
  18.     ncb_reserve(9) As Byte
  19.     ncb_event As Long
  20. End Type
  21. Public Type ADAPTER_STATUS
  22.     adapter_address(5) As Byte
  23.     rev_major As Byte
  24.     reserved0 As Byte
  25.     adapter_type As Byte
  26.     rev_minor As Byte
  27.     duration As Integer
  28.     frmr_recv As Integer
  29.     frmr_xmit As Integer
  30.     iframe_recv_err As Integer
  31.     xmit_aborts As Integer
  32.     xmit_success As Long
  33.     recv_success As Long
  34.     iframe_xmit_err As Integer
  35.     recv_buff_unavail As Integer
  36.     t1_timeouts As Integer
  37.     ti_timeouts As Integer
  38.     Reserved1 As Long
  39.     free_ncbs As Integer
  40.     max_cfg_ncbs As Integer
  41.     max_ncbs As Integer
  42.     xmit_buf_unavail As Integer
  43.     max_dgram_size As Integer
  44.     pending_sess As Integer
  45.     max_cfg_sess As Integer
  46.     max_sess As Integer
  47.     max_sess_pkt_size As Integer
  48.     name_count As Integer
  49. End Type
  50. Public Type NAME_BUFFER
  51.     name As String * NCBNAMSZ
  52.     name_num As Integer
  53.     name_flags As Integer
  54. End Type
  55. Public Type ASTAT
  56.     adapt As ADAPTER_STATUS
  57.     NameBuff(30) As NAME_BUFFER
  58. End Type
  59. Public Declare Function Netbios Lib "netapi32.dll" (pncb As NET_CONTROL_BLOCK) As Byte
  60. Public Function MACAddress() As String
  61.     Dim macAdr As String
  62.     Dim ncb As NET_CONTROL_BLOCK
  63.     Dim adapter As ASTAT
  64.    
  65.     ncb.ncb_command = NCBRESET
  66.     Call Netbios(ncb)
  67.    
  68.     ncb.ncb_command = NCBASTAT
  69.     ncb.ncb_lana_num = 0
  70.     ncb.ncb_callname = "* "
  71.     ncb.ncb_buffer = VarPtr(adapter)
  72.     ncb.ncb_length = Len(adapter)
  73.    
  74.     Call Netbios(ncb) 'renvoie entre autre la mac adresse dans une structure
  75.     For i = 0 To 5
  76.         macAdr = macAdr & Format$(Hex(adapter.adapt.adapter_address(i)), "00" ) & " "
  77.     Next i
  78.     macAdr = Trim(macAdr) 'Enlève les espces à droite et à gauche de la chaîne
  79.     MACAddress = macAdr
  80. End Function


 
Là ou on veut récuperer la valeur de l'adresse mac :

Code :
  1. MsgBox MACAddress 'par exemple


Voilà
 
 
Edit : toutefois, il est possible de changer l'adresse MAC d'une carte réseau ...


Message édité par knakes le 22-03-2005 à 20:44:54
Reply

Marsh Posté le 25-03-2005 à 12:16:37    

Merci knakes je vais tester ce que tu m'a transmis.

Reply

Marsh Posté le 09-06-2005 à 10:11:26    

Ben moi ca me plaiser ce post pour une fois que je trouver ma reponce meme si c'etait pas en VBS.... mais voilas ca marche pas...
 
PKOI TANT DE ... HEU... PFFFF....

Reply

Marsh Posté le 15-06-2005 à 08:35:01    

Public Const NCBASTAT As Long = &H33  
Public Const NCBNAMSZ As Long = 16  
Public Const NCBRESET As Long = &H32  
 
pourkoi excel il me dit que c'est pas bon???
 
j'y pige rien a ce truc de M....
 
@+

Reply

Marsh Posté le 15-06-2005 à 10:11:58    

Enlève le mot Public et mets tes déclarations de constantes dans la partie Déclarations de ton module.


Message édité par AlainTech le 15-06-2005 à 10:12:30
Reply

Marsh Posté le 15-06-2005 à 15:01:16    

WHHHAAAAAAZZZAAAAAA!!!!! Tu veut que je fasse koi??? que je vire public ok ca je comprend mais le reste tu me parle pas chinois mais presque... merci quand meme...
 
@++

Reply

Marsh Posté le 15-06-2005 à 19:37:36    

La partie Déclarations, c'est la partie du code qui est avant les procédures et les fonctions.

Reply

Marsh Posté le 16-06-2005 à 08:14:05    

heu..... genre...
 
private sub lol_initialize()
dim kikoo as string
dim lol as integer
const ncbastat as long = &H33
Cont NCBNAMSZ As Long =16
Const NCBRESET As Long = &H32
 
blbblblbllbbllblbblbllblblb...
end sub
 
et tout le programme derriere???
 
@++

Reply

Marsh Posté le 16-06-2005 à 08:39:59    

AVANT les Sub et Function.
 
T'arrive-t-il de regarder les 2 listes déroulantes qui sont en haut de la fenêtre où tu tapes le code?


---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!
Reply

Marsh Posté le 16-06-2005 à 08:39:59   

Reply

Marsh Posté le 16-06-2005 à 08:53:57    

// Dans un module //
 
voilas trois mots que j'avait mal lus et qui explique le pourquoi du comment ca marcher pas...
 
enfin voilas le programme marche et il est dans un module le probleme est j'ai comme adresse mac 00 00 00 00 00 00 .
Ce qui vous en conviendrai n'est pas mon address mac.
 
y a t il encore un truc que j'aurai slu de travers ou est ce quelque chose que j'aurais put oublier.
 
pour avoir ce resultat j'ai cree un msgbox qui sort la macadress je pense que ca vien du fait que je lance pas la macro avant d'appeller sa variable de sortie. qu'en penser vous?
 
@++

Reply

Marsh Posté le 27-06-2005 à 08:33:48    

personnes a une idee?:'(

Reply

Marsh Posté le 27-06-2005 à 10:11:54    

Oui, mais je n'aurai pas de réponse avant ce soir.
 
Tu as certainement une connexion RAS (carte d'accés à distance, comme on disait sout Win98).
 
A mon avis, tu prends l'adresse de cette carte.
 
Pour en être certain, si tu peux encore le faire, lance une connexion par modem et refais le test.


---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!
Reply

Marsh Posté le 28-06-2005 à 11:22:09    

nan desoler je peut pas faire par modem...  
mais oui c'est bien une connetion RAS pour mon bureau. Tous le monde marche comme ca ici, et comme tu me la dis apparement, je prend l'adresse mac de la conection. 00:00:.... ect  
 
j'espere pouvoir trouver un moyen pour que ca marche. Mon boss il veut pouvoir avoir l'adress mac du pc malgres le connection RAS
 
allez @+ et merci de m'aider


Message édité par stagiaire6 le 28-06-2005 à 11:26:44
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed