Adresse ip d'un ordinateur ( a partir de son nom )

Soyez le premier à donner votre avis sur cette source.

Snippet vu 19 541 fois - Téléchargée 37 fois

Contenu du snippet

Ce petit bout de code permet d'obtenir l'adresse IP d'un ordinateur quelconque en partant du principe que vous connaissez son nom.

Source / Exemple :


//Trouve l'adresse IP d'un ordinateur
function OrdiIP(Ordi: string): string;
var
   WSAData : TWSAData;
   Name,Address : String;
   Phe : PHostEnt;
begin
    //Demarrage du gestinnaire de socket
    WSAStartup(2,WSAData);
    SetLength(Name,255);
    Phe := GetHostByName(PChar(Ordi));
    with Phe^ do
    //Formatage du resultat en string
    Address := Format ('%d.%d.%d.%d' , [Byte(h_addr^[0]),Byte(h_addr^[1]),
                                        Byte(h_addr^[2]),Byte(h_addr^[3])]);
    //Fermeture du gestinnaire de socket
    WSACleanup;
    OrdiIP := Address;
end;

//Montre l'adresse IP de l'ordianteur "Dieu-98"
procedure TForm_Principale.Button1Click(Sender: TObject);
begin
     //Dieu-98 étant le nom d'un de mes pc's
     ShowMessage(OrdiIP('Dieu-98'));
end;

Conclusion :


Ce code n'est pas de moi mais comme il me le fallait & qu'il n'est pas sur ce site, je vous le mets à disposition. En réponse à ma question sur le forum.

A voir également

Ajouter un commentaire

Commentaires

cs_Nebula
Messages postés
790
Date d'inscription
samedi 8 juin 2002
Statut
Membre
Dernière intervention
7 juin 2007
1 -
très intéressant ton code, je n'ai pas encore pu le tester mais il me semble que c'est ShowMessage(OrdiIP('Dieu-98')) et non ShowMessage(Ordi('Dieu-98')) non ?
Bruto
Messages postés
228
Date d'inscription
jeudi 21 mars 2002
Statut
Membre
Dernière intervention
14 mai 2004
-
oui c'est ça, je n'ai pas effectué le test avec ShowMessage. Mais le code marche je l'utilise dans mon prog de chat.

Le ShowMessage était une façon de vous démontrer son efficacité. L'important étant la function OrdiIP. Merci de ta compréhension.
ghuinix
Messages postés
1
Date d'inscription
dimanche 29 septembre 2002
Statut
Membre
Dernière intervention
16 octobre 2002
-
Nebula a raison ----> OrdiIP('Dieu-98) au lieu de Ordi('Dieu-98)
essaye d'utiliser les composant 'FastNet' ils sont plus pratique.

//* bonne chance! *//
DeZNiUS
Messages postés
82
Date d'inscription
vendredi 1 novembre 2002
Statut
Membre
Dernière intervention
24 octobre 2003
-
PROBLEME !

Moi quand je rentre ShowMessage(OrdiIP('DeZNiUS')) ca me fait :
Access Error Violation at adress 0000:0000

Bizarre, mais j'arrive pas a le faire marcher !
Pourtant g bien mit l'unit idWinsock dans la clause uses, et mon nom de PC est bien DeZNiUS...

Bizarre car j'aurai bien voulu faire un prog du style AOL Messager ou Windows Messager sans spywares dedants :-)
cs_hendrix
Messages postés
69
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
18 novembre 2008
1 -
Salut !

Je n'ai pas encore essayé ton code, mais ça se passe comment quand ta machines à plusieurs interfaces réseau ? ... histoire de lister toutes les @IP par interface ?

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.