je souhaiterais r=E9cup=E9rer la MacAdress de la carte r=E9seau d'un PC afin
de construire un N=B0 de licence =E0 partir de cet adresse.
J'ai trouv=E9 sur internet le code Romain Petit, mais une fois ex=E9cut=E9,
il me renvoit que des "0".. Est-ce que qq'un aurait une id=E9e du
probl=E8me, et pourrait me dire o=F9 v=E9rifier ce N=B0?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
paratge
PimSaVie a écrit :
Bonjour
je souhaiterais récupérer la MacAdress de la carte réseau d'un PC afin de construire un N° de licence à partir de cet adresse.
J'ai trouvé sur internet le code Romain Petit, mais une fois exécuté, il me renvoit que des "0".. Est-ce que qq'un aurait une idée du problème, et pourrait me dire où vérifier ce N°?
Merci d'avance
Karine
Bonsoir,
Une idée du problème, non, sans le code, difficile, par contre la vérification de la MACAdresse doit se faire par Executer/cmd/ipconfig /all.
Si ça peut t'aider...
PimSaVie a écrit :
Bonjour
je souhaiterais récupérer la MacAdress de la carte réseau d'un PC afin
de construire un N° de licence à partir de cet adresse.
J'ai trouvé sur internet le code Romain Petit, mais une fois exécuté,
il me renvoit que des "0".. Est-ce que qq'un aurait une idée du
problème, et pourrait me dire où vérifier ce N°?
Merci d'avance
Karine
Bonsoir,
Une idée du problème, non, sans le code, difficile, par contre la
vérification de la MACAdresse doit se faire par Executer/cmd/ipconfig /all.
je souhaiterais récupérer la MacAdress de la carte réseau d'un PC afin de construire un N° de licence à partir de cet adresse.
J'ai trouvé sur internet le code Romain Petit, mais une fois exécuté, il me renvoit que des "0".. Est-ce que qq'un aurait une idée du problème, et pourrait me dire où vérifier ce N°?
Merci d'avance
Karine
Bonsoir,
Une idée du problème, non, sans le code, difficile, par contre la vérification de la MACAdresse doit se faire par Executer/cmd/ipconfig /all.
Si ça peut t'aider...
PimSaVie
voila le code ;o)
FONCTION sAdresseMAC()
// (c) Mars 2002 Romain PETIT (mailto:) // sous licence WD-LIBRE (http://www.windevasso.org) // But : obtenir l'adresse MAC de la carte réseau // Paramètres : aucun // Retour : chaine, adresse MAC (6 nombres en hexa séparés par un espace) // Références API: // http://support.microsoft.com/default.aspx?scid=kb;FR;q175472 // http://msdn.microsoft.com/library/default.asp?url=/library/en-us/netbi os/netbios_1l82.asp // Exemple : // Info(fg_AdresseMAC()) sRetour est une chaîne
NCBASTAT est un entier = 0x33 NCBRESET est un entier = 0x32 HEAP_ZERO_MEMORY est un entier = 0x8 HEAP_GENERATE_EXCEPTIONS est un entier = 0x4
NCB est une structure ncb_command est un entier sur 1 octet sans signe ncb_retcode est un entier sur 1 octet sans signe ncb_lsn est un entier sur 1 octet sans signe ncb_num est un entier sur 1 octet sans signe ncb_buffer est un entier sur 4 octets ncb_length est un entier sur 2 octets ncb_callname est une chaîne ASCIIZ sur 16 ncb_name est une chaîne ASCIIZ sur 16 ncb_rto est un entier sur 1 octet sans signe ncb_sto est un entier sur 1 octet sans signe ncb_post est un entier sur 4 octets ncb_lana_num est un entier sur 1 octet sans signe ncb_cmd_cplt est un entier sur 1 octet sans signe ncb_reserve est un tableau statique de 10 entiers sans signe sur 1 octet ncb_event est un entier sur 2 octets FIN
ADAPTER_STATUS est une structure adapter_address est un tableau statique de 6 entiers sans signe sur 1 octet rev_major est un entier sur 1 octet sans signe reserved0 est un entier sur 1 octet sans signe adapter_type est un entier sur 1 octet sans signe rev_minor est un entier sur 1 octet sans signe duration est un entier sur 2 octets frmr_recv est un entier sur 2 octets frmr_xmit est un entier sur 2 octets iframe_recv_err est un entier sur 2 octets xmit_aborts est un entier sur 2 octets xmit_success est un entier sur 4 octets recv_success est un entier sur 4 octets iframe_xmit_err est un entier sur 2 octets recv_buff_unavail est un entier sur 2 octets t1_timeouts est un entier sur 2 octets ti_timeouts est un entier sur 2 octets Reserved1 est un entier sur 4 octets free_ncbs est un entier sur 2 octets max_cfg_ncbs est un entier sur 2 octets max_ncbs est un entier sur 2 octets xmit_buf_unavail est un entier sur 2 octets max_dgram_size est un entier sur 2 octets pending_sess est un entier sur 2 octets max_cfg_sess est un entier sur 2 octets max_sess est un entier sur 2 octets max_sess_pkt_size est un entier sur 2 octets name_count est un entier sur 2 octets FIN
NAME_BUFFER est une structure Name est une chaîne ASCIIZ de 16 name_num est un entier sur 2 octets name_flags est un entier sur 2 octets FIN
ASTAT est une structure adapt est un ADAPTER_STATUS NameBuff est un tableau statique de 31 NAME_BUFFER FIN
tNcb est un NCB bRet est un booléen c est un entier tASTAT est un ASTAT eASTAT est un entier eHeap est un entier
SI PAS eASTAT ALORS Erreur("L'allocation de mémoire a échouée !") SINON tNcb:ncb_buffer = eASTAT bRet = AppelDLL32("netapi32.dll","Netbios",&tNcb) AppelDLL32("kernel32","RtlMoveMemory", &tASTAT, tNcb:ncb_buffer, Dimension(tASTAT)) //ou on peut utiliser : transfert(&tASTAT,tNcb:ncb_buffer, Dimension(tASTAT) POUR c=1 A 6 sRetour +=NumériqueVersChaîne(tASTAT:adapt:adapter_address[c],"02X") +" " FIN sRetour = SansEspace(sRetour) eHeap = AppelDLL32("kernel32","GetProcessHeap") AppelDLL32("kernel32","HeapFree", eHeap, 0, eASTAT) FIN
RENVOYER sRetour
voila le code ;o)
FONCTION sAdresseMAC()
// (c) Mars 2002 Romain PETIT (mailto:rompetit@ifrance.com)
// sous licence WD-LIBRE (http://www.windevasso.org)
// But : obtenir l'adresse MAC de la carte réseau
// Paramètres : aucun
// Retour : chaine, adresse MAC (6 nombres en hexa séparés par un
espace)
// Références API:
// http://support.microsoft.com/default.aspx?scid=kb;FR;q175472
// http://msdn.microsoft.com/library/default.asp?url=/library/en-us/netbi os/netbios_1l82.asp
// Exemple :
// Info(fg_AdresseMAC())
sRetour est une chaîne
NCBASTAT est un entier = 0x33
NCBRESET est un entier = 0x32
HEAP_ZERO_MEMORY est un entier = 0x8
HEAP_GENERATE_EXCEPTIONS est un entier = 0x4
NCB est une structure
ncb_command est un entier sur 1 octet sans signe
ncb_retcode est un entier sur 1 octet sans signe
ncb_lsn est un entier sur 1 octet sans signe
ncb_num est un entier sur 1 octet sans signe
ncb_buffer est un entier sur 4 octets
ncb_length est un entier sur 2 octets
ncb_callname est une chaîne ASCIIZ sur 16
ncb_name est une chaîne ASCIIZ sur 16
ncb_rto est un entier sur 1 octet sans signe
ncb_sto est un entier sur 1 octet sans signe
ncb_post est un entier sur 4 octets
ncb_lana_num est un entier sur 1 octet sans signe
ncb_cmd_cplt est un entier sur 1 octet sans signe
ncb_reserve est un tableau statique de 10 entiers sans signe sur 1
octet
ncb_event est un entier sur 2 octets
FIN
ADAPTER_STATUS est une structure
adapter_address est un tableau statique de 6 entiers sans signe sur 1
octet
rev_major est un entier sur 1 octet sans signe
reserved0 est un entier sur 1 octet sans signe
adapter_type est un entier sur 1 octet sans signe
rev_minor est un entier sur 1 octet sans signe
duration est un entier sur 2 octets
frmr_recv est un entier sur 2 octets
frmr_xmit est un entier sur 2 octets
iframe_recv_err est un entier sur 2 octets
xmit_aborts est un entier sur 2 octets
xmit_success est un entier sur 4 octets
recv_success est un entier sur 4 octets
iframe_xmit_err est un entier sur 2 octets
recv_buff_unavail est un entier sur 2 octets
t1_timeouts est un entier sur 2 octets
ti_timeouts est un entier sur 2 octets
Reserved1 est un entier sur 4 octets
free_ncbs est un entier sur 2 octets
max_cfg_ncbs est un entier sur 2 octets
max_ncbs est un entier sur 2 octets
xmit_buf_unavail est un entier sur 2 octets
max_dgram_size est un entier sur 2 octets
pending_sess est un entier sur 2 octets
max_cfg_sess est un entier sur 2 octets
max_sess est un entier sur 2 octets
max_sess_pkt_size est un entier sur 2 octets
name_count est un entier sur 2 octets
FIN
NAME_BUFFER est une structure
Name est une chaîne ASCIIZ de 16
name_num est un entier sur 2 octets
name_flags est un entier sur 2 octets
FIN
ASTAT est une structure
adapt est un ADAPTER_STATUS
NameBuff est un tableau statique de 31 NAME_BUFFER
FIN
tNcb est un NCB
bRet est un booléen
c est un entier
tASTAT est un ASTAT
eASTAT est un entier
eHeap est un entier
SI PAS eASTAT ALORS
Erreur("L'allocation de mémoire a échouée !")
SINON
tNcb:ncb_buffer = eASTAT
bRet = AppelDLL32("netapi32.dll","Netbios",&tNcb)
AppelDLL32("kernel32","RtlMoveMemory", &tASTAT, tNcb:ncb_buffer,
Dimension(tASTAT))
//ou on peut utiliser : transfert(&tASTAT,tNcb:ncb_buffer,
Dimension(tASTAT)
POUR c=1 A 6
sRetour +=NumériqueVersChaîne(tASTAT:adapt:adapter_address[c],"02X")
+" "
FIN
sRetour = SansEspace(sRetour)
eHeap = AppelDLL32("kernel32","GetProcessHeap")
AppelDLL32("kernel32","HeapFree", eHeap, 0, eASTAT)
FIN
// (c) Mars 2002 Romain PETIT (mailto:) // sous licence WD-LIBRE (http://www.windevasso.org) // But : obtenir l'adresse MAC de la carte réseau // Paramètres : aucun // Retour : chaine, adresse MAC (6 nombres en hexa séparés par un espace) // Références API: // http://support.microsoft.com/default.aspx?scid=kb;FR;q175472 // http://msdn.microsoft.com/library/default.asp?url=/library/en-us/netbi os/netbios_1l82.asp // Exemple : // Info(fg_AdresseMAC()) sRetour est une chaîne
NCBASTAT est un entier = 0x33 NCBRESET est un entier = 0x32 HEAP_ZERO_MEMORY est un entier = 0x8 HEAP_GENERATE_EXCEPTIONS est un entier = 0x4
NCB est une structure ncb_command est un entier sur 1 octet sans signe ncb_retcode est un entier sur 1 octet sans signe ncb_lsn est un entier sur 1 octet sans signe ncb_num est un entier sur 1 octet sans signe ncb_buffer est un entier sur 4 octets ncb_length est un entier sur 2 octets ncb_callname est une chaîne ASCIIZ sur 16 ncb_name est une chaîne ASCIIZ sur 16 ncb_rto est un entier sur 1 octet sans signe ncb_sto est un entier sur 1 octet sans signe ncb_post est un entier sur 4 octets ncb_lana_num est un entier sur 1 octet sans signe ncb_cmd_cplt est un entier sur 1 octet sans signe ncb_reserve est un tableau statique de 10 entiers sans signe sur 1 octet ncb_event est un entier sur 2 octets FIN
ADAPTER_STATUS est une structure adapter_address est un tableau statique de 6 entiers sans signe sur 1 octet rev_major est un entier sur 1 octet sans signe reserved0 est un entier sur 1 octet sans signe adapter_type est un entier sur 1 octet sans signe rev_minor est un entier sur 1 octet sans signe duration est un entier sur 2 octets frmr_recv est un entier sur 2 octets frmr_xmit est un entier sur 2 octets iframe_recv_err est un entier sur 2 octets xmit_aborts est un entier sur 2 octets xmit_success est un entier sur 4 octets recv_success est un entier sur 4 octets iframe_xmit_err est un entier sur 2 octets recv_buff_unavail est un entier sur 2 octets t1_timeouts est un entier sur 2 octets ti_timeouts est un entier sur 2 octets Reserved1 est un entier sur 4 octets free_ncbs est un entier sur 2 octets max_cfg_ncbs est un entier sur 2 octets max_ncbs est un entier sur 2 octets xmit_buf_unavail est un entier sur 2 octets max_dgram_size est un entier sur 2 octets pending_sess est un entier sur 2 octets max_cfg_sess est un entier sur 2 octets max_sess est un entier sur 2 octets max_sess_pkt_size est un entier sur 2 octets name_count est un entier sur 2 octets FIN
NAME_BUFFER est une structure Name est une chaîne ASCIIZ de 16 name_num est un entier sur 2 octets name_flags est un entier sur 2 octets FIN
ASTAT est une structure adapt est un ADAPTER_STATUS NameBuff est un tableau statique de 31 NAME_BUFFER FIN
tNcb est un NCB bRet est un booléen c est un entier tASTAT est un ASTAT eASTAT est un entier eHeap est un entier
SI PAS eASTAT ALORS Erreur("L'allocation de mémoire a échouée !") SINON tNcb:ncb_buffer = eASTAT bRet = AppelDLL32("netapi32.dll","Netbios",&tNcb) AppelDLL32("kernel32","RtlMoveMemory", &tASTAT, tNcb:ncb_buffer, Dimension(tASTAT)) //ou on peut utiliser : transfert(&tASTAT,tNcb:ncb_buffer, Dimension(tASTAT) POUR c=1 A 6 sRetour +=NumériqueVersChaîne(tASTAT:adapt:adapter_address[c],"02X") +" " FIN sRetour = SansEspace(sRetour) eHeap = AppelDLL32("kernel32","GetProcessHeap") AppelDLL32("kernel32","HeapFree", eHeap, 0, eASTAT) FIN
RENVOYER sRetour
Romain PETIT
PimSaVie a formulé ce mardi :
voila le code ;o)
Salut,
il me semble que le problème avec cette fonction est lié avec la configuration TCP/IP de la machine (plusieurs cartes réseau, lien Netbios ...)