Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi IP auslesen -- Netzwerk (https://www.delphipraxis.net/14194-ip-auslesen-netzwerk.html)

Scorpion 4. Jan 2004 15:02


IP auslesen -- Netzwerk
 
Hallo,

zum Auslesen der IP benutze ich die GetRasIP(1) Funktion, die auch funktioniert. Jetzt hab ich zufällig die Funktion in einem Netzwerk ausgetestet. Sobald ich mich hinter einem Router befinde geht diese Funktion nicht mehr.
Was kann ich machen um trotzdem die IP auszulesen?

Gruss
Nico

Steffen 4. Jan 2004 15:23

Re: IP auslesen -- Netzwerk
 
Versuchs mal hiermit:

Delphi-Quellcode:
uses Winsock;
...
// Liest die lokale IP-Adresse aus
function GetIpAddress : string;
var phoste : PHostEnt;
  Buffer : array [0..100] of char;
  WSAData : TWSADATA;
begin
  if WSAStartup($0101, WSAData) <> 0 then exit;
  GetHostName(Buffer,Sizeof(Buffer));
  phoste := GetHostByName(buffer);
  if phoste = nil then
    result := '127.0.0.1'
  else
    result := StrPas(inet_ntoa(PInAddr(phoste^.h_addr_list^)^));
  WSACleanup;
end;
Gruß,
Steffen

Scorpion 4. Jan 2004 15:31

Re: IP auslesen -- Netzwerk
 
ist aber nicht die IP, die mein Router anzeigt...
Ich weiss nicht, ob ich darüber ansprechbar bin

Duffy 4. Jan 2004 15:35

Re: IP auslesen -- Netzwerk
 
Hallo Scorpion,
da Du hinter einem Router sitzt und NAT verwendest, kannst Du nur über einen Trick deine IP bestimmen.

hier hast Du mal einen Link der Dir als Anhaltspunkt dienen kann

bye
Claus

Scorpion 6. Jan 2004 19:07

Re: IP auslesen -- Netzwerk
 
@Duffy:

Danke,

der Code funktioniert :coder:

Gruss,
Scorpion

gekmihesg 6. Jan 2004 19:13

Re: IP auslesen -- Netzwerk
 
ich hab auch son code aber der sieht einfacher aus :)

Delphi-Quellcode:
function GetRouterIP(http: TIdHttp): string;
var s: string;
begin
  try
    s:=http.Get('http://gekmihesg.i-networx.de/ip.php');
    result:=trim(copy(s,pos('Your IP: ',s)+9,15));
    if result = '' then
      result:='0.0.0.0';
  except
    result:='0.0.0.0';
  end;
end;

H4ndy 7. Jan 2004 10:36

Re: IP auslesen -- Netzwerk
 
Ist aber bissle blöd wenn man ne PHP-Datei aufrufen muss
um an seine IP zu kommen
:drunken:

Scorpion 7. Jan 2004 11:29

Re: IP auslesen -- Netzwerk
 
@H4ndy:

Wenn du eine andere Möglichkeit hast, die funktioniert sind wäre es cool, wenn du diese hier posten würdest...

Gruss
Nico

H4ndy 8. Jan 2004 19:52

Re: IP auslesen -- Netzwerk
 
Da kann ich leider nicht weiterhelfen, da ich nicht hinter einen Router sitze :wall:

Brüggendiek 9. Jan 2004 00:01

Re: IP auslesen -- Netzwerk
 
Hallo!

Wer einen Router benutzt, hat eventuell noch eine Möglichkeit, seine IP rauszubekommen.
Viele Router (speziell die SoHo-Geräte mit 4-er-Switch) können über ein Web-Interface gesteuert werden, d.h. sie können wie ein Webserver aufgerufen werden, generieren Webseiten und ermöglichen Eingaben in entsprechenden Feldern. Normalerweise geben die Router auch die externe IP an.

Die Auswertung ist dann wie bei den einschlägigen PHP-Scripten - mit einem Unterschied: Ist der Router nicht Online, wird keine Verbindung aufgebaut.

Leider hat die Lösung auch einen Nachteil: sie ist immer nur für ein Router-Modell zu gebrauchen, da alle Hersteller einen eigenen Seitenaufbau benutzen.

Gruß

Dietmar Brüggendiek


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:52 Uhr.

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