- Delphiartiklar, tips, forum, länksamling - 

      

START | DELPHI | LÄNKARGÄSTBOK 




 Forum

Grundkurs
  »Introduktion
  »Snabbguide
  »Komponenter
  »Händelser
  »Strängar
  »Räkna med Delphi   »Egna typer
  »Selektion
  »Iteration
  »Menyer
  »Funktioner
  »Arraystrukturer

Tips & Tricks
  »Nya tips
  »Blandat
  »Databaser
  »Filer
  »Forms
  »Grafik
  »Internet
  »Komponenter
  »Matematik
  »Multimedia
  »Objekt/ActiveX
  »Skrivare
  »Strängar
  »System
  »Mest lästa tips

Artiklar
  »Delphi och ADO
  »Bygga en DLL
  »Skapa en enkel rapport
  »Hantera registret
  »Enheter, units
  »Klassen TCanvas
  »Använd LookUp Controls

 Nya tips
 Lägg till tips
 Delphilänkar
 Gästbok

 

Erhåll datornamn från en IP-adress Kategori: Internet
Inlagt: 2004-10-26
Läst: 1349
Inlagt av: Staffan Berg
Beskrivning
Detta exempel returnerar datornamnet från angiven IP-adress. 
Kod
uses  
 WinSock;  
 
function LocalIP: string ;  
type  
 TaPInAddr = array[0..10] of PInAddr;  
 PaPInAddr = ^TaPInAddr;  
var  
 phe: PHostEnt;  
 pptr: PaPInAddr;  
 Buffer: array[0..63] of Char;  
 I: Integer;  
 GInitData: TWSAData;  
begin  
 WSAStartup($101, GInitData);  
 Result := '';  
 GetHostName(Buffer, SizeOf(Buffer));  
 phe := GetHostByName(buffer);  
 if phe = nil then Exit;  
 pPtr := PaPInAddr(phe^.h_addr_list);  
 I := 0;  
 while pPtr^[I] <> nil do  
 begin  
  Result := inet_ntoa(pptr^[I]^);  
  Inc(I);  
 end;  
 WSACleanup;  
end;  
 
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  
  Result := StrPas(Hostent^.h_name)  
 else  
  Result := '';  
end;  
 
procedure TForm1.Button1Click(Sender: TObject);  
begin  
 ShowMessage(IPAddrToName(LocalIp));  
end;  
 
{**************************************}  
 
// Function to get the IP Address from a Host  
 
function GetIPFromHost(const HostName: string ): string ;  
type  
 TaPInAddr = array[0..10] of PInAddr;  
 PaPInAddr = ^TaPInAddr;  
var  
 phe: PHostEnt;  
 pptr: PaPInAddr;  
 i: Integer;  
 GInitData: TWSAData;  
begin  
 WSAStartup($101, GInitData);  
 Result := '';  
 phe := GetHostByName(PChar(HostName));  
 if phe = nil then Exit;  
 pPtr := PaPInAddr(phe^.h_addr_list);  
 i := 0;  
 while pPtr^[i] <> nil do  
 begin  
  Result := inet_ntoa(pptr^[i]^);  
  Inc(i);  
 end;  
 WSACleanup;  
end;  

 
 
© Copyright 2005 - Staffan Berg
- Alla rättigheter förbehålles -