Resolution de nom sur réseau local [Résolu]

cs_manu00 93 Messages postés jeudi 19 décembre 2002Date d'inscription 25 octobre 2006 Dernière intervention - 20 oct. 2005 à 09:57 - Dernière réponse : cs_manu00 93 Messages postés jeudi 19 décembre 2002Date d'inscription 25 octobre 2006 Dernière intervention
- 20 oct. 2005 à 21:16
Bonjour,



J'ai cherché un code source sur ce forum pour faire ceci mais je n'ai rien trouvé...



En fait, je dispose d'une liste d'ip réseau (locale) 192.168.x.x et je
les scanne... Seulement, j'aimerai faire apparaitre aussi leur nom
Netbios (COMPUTER1, COMPUTER2...etc etc



Avez vous un source (ou alors Ze Technique) qui resolve le nom de l'ordi a partir de son ip ???



Merci



Manu
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
cs_manu00 93 Messages postés jeudi 19 décembre 2002Date d'inscription 25 octobre 2006 Dernière intervention - 20 oct. 2005 à 21:16
3
Merci
Bon, je ne peux pas editer mon message precedent alors je corrige juste les fautes de frappes:



function IPAddrToName(IPAddr: string): string;
var
  SockAddrIn: TSockAddrIn;
  HostEnt: PHostEnt;
  WSAData: TWSAData;
begin
  WSAStartup($101, WSAData);
  SockAddrIn.sin_addr.s_addr:=inet_addr(PChar(IPAddr));
  HostEnt:= GetHostByAddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET);
  if HostEnt<>nil then
  begin
    Result:=StrPas(Hostent^.h_name)
  end
  else
  begin
    Result:='';
  end;
end;



ps: Ajouter Winsock dans les uses

pps: CA FONCTIONNE TRES TRES BIEN !!!



Merci a moi-même (et aux autres :-))

Merci cs_manu00 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 68 internautes ce mois-ci

Commenter la réponse de cs_manu00
cs_Loda 900 Messages postés vendredi 3 novembre 2000Date d'inscription 30 juillet 2009 Dernière intervention - 20 oct. 2005 à 12:40
0
Merci
J'ai bien une solution sans composant, mais je sais pas si elle vas beaucoup te plaire:



la commande:

ping -a IP > fichier



et pour executer une commande depuis Delphi:

http://delphi.developpez.com/faq/?page=interexecution#executerapplication


Loda



PS: y a surement des composant qui le font, mais je ne les connait pas.
Commenter la réponse de cs_Loda
cs_manu00 93 Messages postés jeudi 19 décembre 2002Date d'inscription 25 octobre 2006 Dernière intervention - 20 oct. 2005 à 12:56
0
Merci
Même en tapant en commande dos avec le -a , cela ne resout pas les noms :-(



Je vais chercher du côté des composants...

Merci



Si qqlun à la soluce ;-)....



Manu
Commenter la réponse de cs_manu00
cs_Loda 900 Messages postés vendredi 3 novembre 2000Date d'inscription 30 juillet 2009 Dernière intervention - 20 oct. 2005 à 13:22
0
Merci
ça devrait. t'as peut-être un firewall ou truc comme ça.



Loda
Commenter la réponse de cs_Loda
dominique.stock 446 Messages postés vendredi 7 novembre 2003Date d'inscription 8 octobre 2008 Dernière intervention - 20 oct. 2005 à 14:20
0
Merci
Bonjour,
Si tu as la possibilité de l'utiliser, essayes avec le WMI,
Par défaut c'est installer sur les postes en XP.
Sinon tu peux l'installer sur les postes en 2000 et NT.
Tu pourras accéder à pas mal d'info du réseau..

Dom
Commenter la réponse de dominique.stock
cs_manu00 93 Messages postés jeudi 19 décembre 2002Date d'inscription 25 octobre 2006 Dernière intervention - 20 oct. 2005 à 21:11
0
Merci
J'ai trouvé ca sur un site:





Get host name using IP-address



Use IPAddrToName function. This function get host information by using GetHostByAddr function.
function IPAddrToName(IPAddr: string): string;
var
  SockAddrIn: TSockAddrIn;
  HostEnt: PHostEnt;
  WSAData: TWSAData;
begin
  WSAStartup($101, WSAData);
  SockAddrIn.sin_addr.s_addr:=inet_addr(PChar(IPAddr));
  HostEnt:= GetHostByAddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET);
  if HostEnt<&amp;gtnil then
  begin
    Rresult:=StrPas(Hostent^.h_name)
  end
  else
  begin
    Result:='';
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption:=IPAddrToName(Edit1.Text);
end;

Je testerai ca demain...
Je vous dirais si ca fonctionne...

Merci
M.
Commenter la réponse de cs_manu00

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.