Autor Beitrag
W4yne
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 50



BeitragVerfasst: Di 05.01.10 17:54 
Wie kann man mit Delphi aus der IP den Hostnamen ermitteln?

mfg W4yne
Muck
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 98
Erhaltene Danke: 8

Win 8, Win 7, Vista, Win XP
Delphi XE3, Delphi 2009, Delphi 2007, Delphi 5
BeitragVerfasst: Di 05.01.10 18:55 
Hallo,

ich mache das so:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
uses WinSock;

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


Ciao

Markus
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 05.01.10 22:19 
Moin!

user profile iconW4yne hat folgendes geschrieben Zum zitierten Posting springen:
Wie kann man mit Delphi aus der IP den Hostnamen ermitteln?
Geht es um eine bereits bestehende Verbindung oder kriegst du die IP-Adresse als DDN? Normalerweise kann man bei einer bereits bestehenden Verbindung den Hostnamen aus dem Binding bzw. dem Socket-Objekt lesen. :idea:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
W4yne Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 50



BeitragVerfasst: Mi 06.01.10 21:08 
Was muck geschickt hat passt einwandfrei und nein es ist keine bestehende Verbindung.

mfg W4yne
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 07.01.10 01:24 
Moin!

user profile iconW4yne hat folgendes geschrieben Zum zitierten Posting springen:
Was muck geschickt hat passt einwandfrei
Naja, bis auf das WSA-Init, sowas gehört nicht in die Funktion rein (kostet nur Ressourcen). Und ein Init (gehört ausgewertet und) möchte auch gerne hinterher wieder aufgeräumt werden. :? Also ganz minimal irgendwie sowas:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
uses
  WinSock;

implementation

var
  WSAData: TWSAData;

function IPv4ToName(const IPv4ddn: AnsiString): String;
  var
    IPv4: in_addr;
    HostEnt: PHostEnt;
begin
  IPv4.S_addr := inet_addr(PAnsiChar(IPv4ddn));
  HostEnt := gethostbyaddr(@IPv4, SizeOf(IPv4), AF_INET);
  if Assigned(HostEnt) then
    Result := StrPas(Hostent^.h_name)
  else
    Result := '';
end;

initialization
  WSAStartup($101, WSAData); // der RC ist hoffentlich <> 0

finalization
  WSACleanup;
bitte nicht mit "funktioniert doch" kommen, ein Auto ohne Bremsen funktioniert auch...
cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
ardani
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36

Win XP
Delphi 6, C++ (VS Express)
BeitragVerfasst: Mi 10.02.10 11:58 
wie kann ich bei dem Beispiel verhindern, das der Rechner während des Ausführens "hängen" bleibt, mit Application.ProcessMessages;
Ich möchte erreichen, dass mein Programm den Teil ausführt, dabei aber wartet bis dieser abgeschlossen ist, da ich eine "Uhr" und einen Fortschrittsbalken anzeigen lasse, würde ich die Hostabfrage gerne "auslagern", damit die beiden Darstellungen, weiterhin Flüssig und Korrekt stattfinden.
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Mi 10.02.10 12:57 
user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
Moin!
bitte nicht mit "funktioniert doch" kommen, ein Auto ohne Bremsen funktioniert auch...


wie man bei Toyota sehr gut sehen kann. :mrgreen:

sry for OT, musste einfach sein^^

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 10.02.10 16:22 
Dann lager die Routine in einen Thread aus.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Mi 10.02.10 22:30 
user profile iconelundril hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
Moin!
bitte nicht mit "funktioniert doch" kommen, ein Auto ohne Bremsen funktioniert auch...


wie man bei Toyota sehr gut sehen kann. :mrgreen:

sry for OT, musste einfach sein^^

Warum musste ich da jetzt an X3 denken? :mrgreen:

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.