![]() |
Über IP den Hostname ermitteln
Ich muss über eine beliebige Internet IP Adresse dessen Hostname ermitteln. Irgendwie blick ich da nicht durch. Indy (v.10) sollte doch sowas können, aber ich hab keine Ahnung welche Componente ich dafür ranziehen muss.
Ist bestimmt ganz einfach :-) |
Re: Über IP den Hostname ermitteln
Das geht über DNS Reverse Lookup.
Schau dir mal die Indy Beispiele an. Wenn ich mich recht erinnere gab es bei der 7er Version ein Beispiel dazu. Eventuell ist bei der 10er Version auch was dabei. Alternativ kann ich heute Abend aus meinen Sourcen was für dich raussuchen ... Ich verwende die V.7x Indys.... Schöne Grüße, Jens :hi: [edit] Alternativ könntest du ja schon mal schauen, ob dir die Infos , die dir DNS Reverse-Lookup liefert überhaupt ausreichen ... ![]() Die Kommandozeile tuts natürlich auch :mrgreen: (nslookup 212.68.72.92). [/edit] |
Re: Über IP den Hostname ermitteln
Zitat:
|
Re: Über IP den Hostname ermitteln
Man kann auch direkt mit Winsock arbeiten.
Delphi-Quellcode:
unit WinSockTools;
interface function ResolveIP(const ipadrstr:string):string; procedure RaiseSocketError(const UserMsg:string); implementation uses WinSock, SysUtils; function ResolveIP(const ipadrstr:string):string; var InetAddr: u_long; HostEntPtr: PHostEnt; HostEnt: THostEnt; len, struct: Integer; i: Integer; begin if ipadrstr = '255.255.255.255' then begin Result := 'broadcast'; Exit; end; // Convert textual IP address to binary format InetAddr := inet_addr( PChar(ipadrstr) ); if InetAddr = SOCKET_ERROR then raise Exception.Create( 'Invalid address entered' ); len := 4; // Get hist entry by IP HostEntPtr := GetHostByAddr( @InetAddr, len, AF_INET ); if HostEntPtr = NIL then RaiseSocketError('GetHostByAddr'); // Insert hostname into list Result := String( HostEntPtr^.h_name ); end; procedure RaiseSocketError(const UserMsg:string); begin raise Exception.Create('WinSSock error:'#13#10+UserMsg+#13#10+ SysErrorMessage(WSAGetLastError())); end; end. |
Re: Über IP den Hostname ermitteln
Danke shmia,
dein Code klappt einwandfrei. :thumb: |
Re: Über IP den Hostname ermitteln
Bei mir funktioniert der Code leider nicht, egal, welche IP ich eingebe:
Zitat:
Ich arbeite mit Windows XP Home und SP2 |
Re: Über IP den Hostname ermitteln
Zitat:
![]() Zitat:
![]() |
Re: Über IP den Hostname ermitteln
Ähä...
Mönsch, hätt' ich ja von selbst drauf kommen können. Kümmer' ich mich aber erst im Laufe des Tages drum. Vielen Dank :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:18 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