Gestion du cache arp de windows ( iphlpapi.dll )

Soyez le premier à donner votre avis sur cette source.

Vue 17 202 fois - Téléchargée 1 366 fois

Description

Ce programme permet d'ajouter ou supprimer des lignes du cache ARP de Windows, comme on pourrais le faire avec la commande ms-dso (voir c:\>arp /? ).

Pour ceux qui ne savent pas ce qu'est ARP, c'est la protocole qui permet au machines de résoudre l'adresse MAC d'un hote grace à leur adresse IP.
(Utiliser aussi par les Switch, etc...).

La correspondance Adresse IP <-> Adresse MAC est stocké en mémoire par le système d'exploitation pour evité d'avoir à faire une requete ARP dès qu'il veut joindre une machine.

Pour plus d'information sur l'ARP : mon ami GOoGle !!!

Source / Exemple :


// Les API utilisées :
// -------------------

{ Inet_addr : Permet de resoudre une adresse IP lisible (192.168.0.1) en format système }

function Inet_addr( const cp: PChar ): DWORD; stdcall; external 'WS2_32.DLL' name 'inet_addr';

{GetIpNetTable : Recupère l'identifiant de la table ARP, pour pouvoir travailler avec ensuite }
function GetIpNetTable(pIpNetTable : TIpAddrTable; pdwSize: PULONG; bOrder: Boolean ): DWORD; stdcall; external 'IPHLPAPI.DLL';

{CreateIpNetEntry : Permet d'ajouter une ligne dans la table ARP }
function CreateIpNetEntry ( pArpEntry : PMIB_IPNETROW ) : DWORD; stdcall; external 'IPHLPAPI.DLL';

{ DeleteIpNetEntry : Permet de supprimer une ligne dans la table ARP }
function DeleteIpNetEntry ( pArpEntry : PMIB_IPNETROW ) : DWORD; stdcall; external 'IPHLPAPI.DLL';
{ SendARP : Envoi une requete ARP vers l'adresse IP donnée, et renvoi l'adresse MAC }
function SendARP( const DestIP: DWORD; const SrcIP: DWORD; const pMacAddr: PULONG; const PhyAddrLen: PULONG ): DWord; stdcall; external 'IPHLPAPI.DLL';

{FlushIpNetTable : Vide tout le cache ARP }
function FlushIpNetTable( dwIfIndex : DWORD ) : DWORD; stdcall; external 'IPHLPAPI.DLL';

Conclusion :


Voila dite moi si il y à des améliorations, voir des choses qu'on peut implémenter en plus afin de rendre cette outil beaucoup plus utile.

PS : Ces API sont très mal documentées et utilisées, j'ai dû me faire chier avec la MSDN pour y arriver.

Sinon notes et commentaires sont les bienvenues.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
3
Date d'inscription
jeudi 18 mars 2004
Statut
Membre
Dernière intervention
20 décembre 2006

Salut. Merci pour ce code, c'est exactement ce que j'avais besoin ! Simple d'utilisation.
Toutefois, j'ai rencontrer un problème, peut-être pourra tu m'aider. je te contacte par mail.
christophe
Messages postés
718
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
22 novembre 2016
3
Pas de commentaire pour cette source !?

Source qui m'a demandé pas mal de temps pour la mettre en place correctement ...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.