Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi IP-Adresse aus Internetsite ermitteln (https://www.delphipraxis.net/75755-ip-adresse-aus-internetsite-ermitteln.html)

danku 24. Aug 2006 15:14


IP-Adresse aus Internetsite ermitteln
 
ich hab in einem delphi-forum folgendes gefunden:

Delphi-Quellcode:
function IAddrToHostName(const IP: string): string;
var
  i: Integer;
  p: PHostEnt;
begin
  Result := '';
  i     := inet_addr(PChar(IP));
  if i <> u_long(INADDR_NONE) then
  begin
    p := GetHostByAddr(@i, SizeOf(Integer), PF_INET);
    if p <> nil then Result := p^.h_name;
  end
  else
    Result := 'Invalid IP address';
end;
irgendwie funzt das nicht bei mir.

s.h.a.r.k 24. Aug 2006 15:31

Re: IP-Adresse aus Internetsite ermitteln
 
Hey, also das hier hat mit der Easy Helper (http://www.dsdt.info) ausgespuckt:

Zitat:

IP-Adresse eines Hosts ermitteln
getHostByName


--------------------------------------------------------------------------------

Folgende Procedure ermittelt die IP-Adressen eines Hosts. Dies kann z.B. ein Copmutername oder ein Domain-Name sein.

Kern der Funktion ist der Aufruf von "getHostByName", die in der "Platform SDK: Windows Sockets 2" dokumentiert ist. Dort finden sich auch relevante Fehlercodes, die die Funktion in Falle eines Fehlers zurückgibt.

Delphi-Quellcode:
uses
  WinSock;

function GetIpAddressByName(const Lines:TStrings; const AHost: String): Boolean;
type
  PPInAddr= ^PInAddr;
var
  WSA: TWSAData;
  HostInfo: PHostEnt;
  Addr: PPInAddr;
begin
  Result:=False;
  if WSAStartUp($101, WSA) = 0 then
  begin
    try
      HostInfo:= getHostByName(PChar(AHost));
      Result:=HostInfo<>nil;
      if Result then
      begin
        Addr:=Pointer(HostInfo^.h_addr_list);
        if (Addr<>nil) AND (Addr^<>nil) then
        begin
          Repeat
            Lines.Add(StrPas(inet_ntoa(Addr^^)) ) ;
            inc(Addr);
          Until Addr^=nil;
        end;
      end;
    finally
     WSACleanup;
    end;
  end;
end;
Die Funktion gibt True zurück, falls der Aufruf von getHostByName erfolgreich war:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
 if GetIpAddressByName(Listbox1.Items, 'www.google.de') then
   Showmessage('OK')
 else
   ShowMessage('Fehler');
end;

--------------------------------------------------------------------------------
Letzte Aktualisierung: 19.02.2005
Online-Version

himitsu 24. Aug 2006 16:37

Re: IP-Adresse aus Internetsite ermitteln
 
Irgendwie klinget GetHostByAddr und IAddrToHostName für mich andersrum ... ließ dir das mal GANZ genau durch :warn:

IP => HostName

s.h.a.r.k 24. Aug 2006 21:44

Re: IP-Adresse aus Internetsite ermitteln
 
Hm, also so wie ich den Thread-Titel lese übergebe ich der Funktion eine Internetseite, z.b. www.delphipraxis.net, und das Ergebnis ist die IP dazu - oder versteh ich das falsch!??!?!?!?!

RobertP 24. Aug 2006 21:58

Re: IP-Adresse aus Internetsite ermitteln
 
Nee er will von einer IP Adresse den zugehörigen Host wissen.

Hier inner Code Library hab ich das hier gefunden: *klick*

Is bissl anders die Funktion vielleicht geht die ja.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz