Autor Beitrag
Harry M.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 754

Win 2000, XP
D2005
BeitragVerfasst: Mi 02.02.05 20:32 
wie bekomme ich von der ip-adresse den hostnamen (provider-name oder www.blabal.de)

gruß
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Mi 02.02.05 20:49 
per dns??
**grins**

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
var
   S:String;
   HostEnt   : PHostEnt;
   WSAData   : TWSAData;
   SockAddrIn: TSockAddrIn;
   DNSRes: String;

      if WSAStartup(MAKEWORD(2,0),WSAData)=0 then begin
        try
          S:= '123.123.123.123'//<-- Input ip-Adresse
          SockAddrIn.sin_addr.S_addr := inet_addr(PChar(S));
          HostEnt:=gethostbyAddr(@SockAddrIn.sin_addr.S_addr,SizeOf(SockAddrIn.sin_addr.S_addr),AF_INET);
          DNSRes:=StrPas(HostEnt^.h_name);//<<-- dein Hostname
        except end;
        WSACleanup;
      end;

grez
msch

Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt.

_________________
ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
Harry M. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 754

Win 2000, XP
D2005
BeitragVerfasst: Mi 02.02.05 21:01 
meine comiler hat folgendes zubemängeln

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
[Fehler] Unit1.pas(25): Undefinierter Bezeichner: 'PHostEnt'
[Fehler] Unit1.pas(26): Undefinierter Bezeichner: 'TWSAData'
[Fehler] Unit1.pas(27): Undefinierter Bezeichner: 'TSockAddrIn'
[Fehler] Unit1.pas(38): Undefinierter Bezeichner: 'WSAStartup'
[Warnung] Unit1.pas(38): Vorzeichenbehaftete und -lose Typen werden verglichen - beide Operanden werden erweitert
[Fehler] Unit1.pas(41): Operator oder Semikolon fehlt
[Fehler] Unit1.pas(41): Undefinierter Bezeichner: 'inet_addr'
[Fehler] Unit1.pas(42): Undefinierter Bezeichner: 'gethostbyAddr'
[Fehler] Unit1.pas(42): Operator oder Semikolon fehlt
[Fehler] Unit1.pas(42): EXCEPT oder FINALLY erwartet
[Fehler] Unit1.pas(45): Undefinierter Bezeichner: 'WSACleanup'
[Fehler] Unit1.pas(47): Deklaration erwartet, aber Bezeichner 'Label1' gefunden
[Fehler] Unit1.pas(49): '.' erwartet, aber ';' gefunden
[Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden


muß ich da noch irgend ne uses hinzufügen??
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Fr 04.02.05 19:13 
uses winsock;

sorry

_________________
ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
Harry M. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 754

Win 2000, XP
D2005
BeitragVerfasst: Sa 05.02.05 02:01 
nun kann man es zwar comilieren aber es passiert nichts. woran kann das liegen?
UC-Chewie
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 531

WinXP
D5 Ent
BeitragVerfasst: Sa 05.02.05 11:52 
Äh, liegt der Code auch in einer Prozedur, die du aufrufst?

_________________
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
Harry M. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 754

Win 2000, XP
D2005
BeitragVerfasst: Sa 05.02.05 18:04 
natürlich

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
procedure TForm1.Button1Click(Sender: TObject);
var  
   S:String;  
   HostEnt   : PHostEnt;
   WSAData   : TWSAData;  
   SockAddrIn: TSockAddrIn;  
   DNSRes: String;

    begin
      if WSAStartup(MAKEWORD(2,0),WSAData)=0 then begin  
        try  
          S:= '81.169.132.68'//<-- Input ip-Adresse
          SockAddrIn.sin_addr.S_addr := inet_addr(PChar(S));
          HostEnt:=gethostbyAddr(@SockAddrIn.sin_addr.S_addr,SizeOf(SockAddrIn.sin_addr.S_addr),AF_INET);  
          DNSRes:=StrPas(HostEnt^.h_name);//<<-- dein Hostname
        except end;
        WSACleanup;
      end;
          Label1.Caption := DNSRes;

   end;


Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt.
max120b
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33

WinXP, Linux 9.0
Delphi 2005 Professional
BeitragVerfasst: Sa 05.02.05 20:49 
Moin allerseits!

In der Pozedur wird der Variablen "s" die IP zugewiesen,
von der der Hostname ermittelt werden soll. Da is so wies dasteht
irgendwas mit 81... festgelegt. Wenn die IP im Lokalen Netz aber nicht vorhanden ist,
kann natürlich kein Hostname ermittelt werden.
Probier doch mal, ob sich was tut, wenn du anstatt einer festgelegten IP ein Text einfügst (z.B. aus nem Edit oder so) den man andern kann.

ausblenden Quelltext
1:
S:=Edit1.Text;					


Ansonsten probier mal ob n' http:// oder ftp:// und so weiter vor der IP
was bringt.

mfg
Max120b
Harry M. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 754

Win 2000, XP
D2005
BeitragVerfasst: Sa 05.02.05 21:48 
ja, für das lokale netz geht das. aber ich hätte es gerne für das globale. also wenn ich eingebe 81.169.132.68 da soll da stehen www.delphi-forum.de
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Sa 05.02.05 22:58 
die funktion funktioniert eigentlich überall - benutz sie selber um namen zu finden - egal ob LAN oder WAN.
grez
msch

_________________
ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
Harry M. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 754

Win 2000, XP
D2005
BeitragVerfasst: Sa 05.02.05 23:34 
bei mir leider nicht, mein debugger meldet

---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Project1.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 00455753 in Modul 'Project1.exe'. Lesen von Adresse 00000000'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Hilfe
---------------------------

und wenn ich es ohne debugger starte, kommt nix label1 bleibt leer