|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
Récupérer les informations des adaptateurs réseaux (API Iphlpapi) |
Débuté par Michael MAURAY, 16 juil. 2014 11:25 - 5 réponses |
| |
| | | |
|
| |
Membre enregistré 22 messages Popularité : +0 (2 votes) |
|
Posté le 16 juillet 2014 - 11:25 |
Bonjour,
Si ça peut aider quelqu'un d'autre, voici un petit bout de code qui permet de récupérer les informations des adaptateurs réseaux du poste local :
LOCAL sNomDllest une chaîne="Iphlpapi.dll" eNumDllest un entier eErreur, eTailleTable sont des entiers sBuf est une chaîne nNbEntréesest un entier sAdresseMac est une chaîne
IP_ADDRESS_STRING est une structure sString est une chaîne fixe de 16 FIN
IP_MASK_STRING est une structure sString est une chaîne fixe de 16 FIN
IP_ADDR_STRING est une structure nNext est un entier IpAddress est un IP_ADDRESS_STRING IpMask est un IP_MASK_STRING Context est un entier sans signe sur 4 octets FIN
IP_ADAPTER_INFO est une structure nNext est un entier nComboIndex est un entier sans signe sur 4 octets sAdapterName est une chaîne ASCIIZ sur 260 sDescription est une chaîne ASCIIZ sur 132 nAddressLength est un entier sans signe sur 4 octets sAddress est une chaîne fixe sur 8 nIndex est un entier sans signe sur 4 octets nType est un entier sans signe sur 4 octets nDhcpEnabled est un entier sans signe sur 4 octets nCurrentIpAddress est un entier IpAddressList est un IP_ADDR_STRING GatewayList est un IP_ADDR_STRING DhcpServer est un IP_ADDR_STRING nHaveWins est un entier sur 4 octets PrimaryWinsServer est un IP_ADDR_STRING SecondaryWinsServer est un IP_ADDR_STRING nLeaseObtained est un entier nLeaseExpires est un entier FIN
Adapter est un IP_ADAPTER_INFO Adaptateurinfoest un tableau dynamique de 0 IP_ADAPTER_INFO ERROR_BUFFER_OVERFLOW est un entier = 111 ERROR_INVALID_DATA est un entier = 13 ERROR_INVALID_PARAMETER est un entier = 87 ERROR_NO_DATA est un entier = 232 ERROR_NOT_SUPPORTED est un entier = 50 ERROR_SUCCESS est un entier = 0 NO_ERROR est un entier = 0 MIB_IF_TYPE_OTHER est un entier = 1 MIB_IF_TYPE_ETHERNET est un entier = 6 IF_TYPE_ISO88025_TOKENRING est un entier = 9 MIB_IF_TYPE_PPP est un entier = 23 MIB_IF_TYPE_LOOPBACK est un entier = 24 MIB_IF_TYPE_SLIP est un entier = 28 IF_TYPE_IEEE80211 est un entier = 71
eNumDll=ChargeDLL(sNomDll) SI eNumDll=0 ALORS Erreur(ErreurInfo()) FIN
eTailleTable = 0 sBuf ="" eErreur = API(sNomDll,"GetAdaptersInfo",&sBuf, &eTailleTable)
SI eErreur <> ERROR_BUFFER_OVERFLOW ALORS
Erreur(ErreurInfo()) GOTO Finproc FIN
sBuf =Répète(" ",eTailleTable) eErreur = API(sNomDll,"GetAdaptersInfo",&sBuf, &eTailleTable) SI eErreur <> NO_ERROR ALORS
Erreur(ErreurInfo()) GOTO Finproc FIN
SI Taille(sBuf) >= Dimension(Adapter) ALORS nNbEntrées = 1 Dimension(Adaptateurinfo,nNbEntrées) Transfert(&Adaptateurinfo[nNbEntrées],&sBuf,Dimension(Adapter))
TANTQUE Adaptateurinfo[nNbEntrées]:nNext nNbEntrées++ Dimension(Adaptateurinfo,nNbEntrées) Transfert(&Adaptateurinfo[nNbEntrées],Adaptateurinfo[nNbEntrées-1].nNext,Dimension(Adapter)) FIN FIN
SI TableauOccurrence(Adaptateurinfo) ALORS POUR x = 1 _A_ TableauOccurrence(Adaptateurinfo) Trace("Index : " + Adaptateurinfo[x]:nComboIndex) Trace("Adapter Name : " + Adaptateurinfo[x]:sAdapterName) Trace("Adapter Desc : " + Adaptateurinfo[x]:sDescription)
sAdresseMac = "" POUR IndiceBuffer=1 _A_ Adaptateurinfo[x]:nAddressLength sAdresseMac += Majuscule(NumériqueVersChaîne(Asc(Adaptateurinfo[x]:sAddress[[IndiceBuffer]]),"02x"))+" " FIN Trace("Adapter Addr : " + sAdresseMac) SELON Adaptateurinfo[x]:nType CAS MIB_IF_TYPE_OTHER: Trace("Type : ","Other") CAS MIB_IF_TYPE_ETHERNET: Trace("Type : ","Ethernet"); CAS IF_TYPE_ISO88025_TOKENRING: Trace("Type : ","Token Ring"); CAS IF_TYPE_IEEE80211: Trace("Type : ","FDDI"); CAS MIB_IF_TYPE_PPP: Trace("Type : ","PPP"); CAS MIB_IF_TYPE_LOOPBACK: Trace("Type : ","Lookback"); CAS MIB_IF_TYPE_SLIP: Trace("Type : ","Slip"); AUTRE CAS Trace("Type : ","Unknown type : ", Adaptateurinfo[x]:nType) FIN Trace("IP Address : " + Adaptateurinfo[x]:IpAddressList:IpAddress:sString) Trace("IP Mask : " + Adaptateurinfo[x]:IpAddressList:IpMask:sString) Trace("Gateway : " + Adaptateurinfo[x]:GatewayList:IpAddress:sString) SI (Adaptateurinfo[x]:nDhcpEnabled) ALORS Trace("DHCP Enabled : Yes") Trace("DHCP Server : " + Adaptateurinfo[x]:DhcpServer:IpAddress:sString) Trace("Lease Obtained : " + DateHeureUTCVersLocale(ChaîneConstruit("%1%2%3%4%5",EntierVersDate(DateVersEntier("19700101") + PartieEntière(Adaptateurinfo[x]:nLeaseObtained/86400)),... Modulo(PartieEntière(Adaptateurinfo[x]:nLeaseObtained/3600),24),Modulo(PartieEntière(Adaptateurinfo[x]:nLeaseObtained/60),60),Modulo(Adaptateurinfo[x]:nLeaseObtained,60),"00"))) Trace("Lease Expires : " + DateHeureUTCVersLocale(ChaîneConstruit("%1%2%3%4%5",EntierVersDate(DateVersEntier("19700101") + PartieEntière(Adaptateurinfo[x]:nLeaseExpires/86400)),... Modulo(PartieEntière(Adaptateurinfo[x]:nLeaseExpires/3600),24),Modulo(PartieEntière(Adaptateurinfo[x]:nLeaseExpires/60),60),Modulo(Adaptateurinfo[x]:nLeaseExpires,60),"00"))) SINON Trace("DHCP Enabled : NO") FIN SI (Adaptateurinfo[x]:nHaveWins) ALORS Trace("Have Wins : Yes") Trace("Primary Wins Server : " + Adaptateurinfo[x]:PrimaryWinsServer:IpAddress:sString) Trace("Secondary Wins Server : " + Adaptateurinfo[x]:SecondaryWinsServer:IpAddress:sString) SINON Trace("Have Wins : No") FIN Trace(RC) FIN FIN
Finproc:
SI eNumDll<>0 ALORS DéchargeDLL(eNumDll)
Pour info, ce code a été écrit rapidement dans un bouton. Si vous avez des commentaires, je suis preneur.
Cordialement,
Michael MAURAY |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 63 messages Popularité : +4 (4 votes) |
|
Posté le 03 décembre 2015 - 17:24 |
Merci beaucoup pour ce code.... |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 280 messages Popularité : +22 (28 votes) |
|
Posté le 04 décembre 2015 - 02:08 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 63 messages Popularité : +4 (4 votes) |
|
Posté le 04 décembre 2015 - 09:35 |
Bonjour
Peut on récupérer aussi le nom du réseau associé à la carte réseau avec cette dll?
D'avance merci pour votre réponse... Cordialement |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 22 messages Popularité : +0 (2 votes) |
|
Posté le 04 décembre 2015 - 11:44 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 22 messages Popularité : +0 (2 votes) |
|
Posté le 04 décembre 2015 - 14:30 |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|