Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Eigene (Internet)IP rausfinden (https://www.delphipraxis.net/48018-eigene-internet-ip-rausfinden.html)

Pseudemys Nelsoni 19. Jun 2005 13:51


Eigene (Internet)IP rausfinden
 
Moin,

jo, ich weiss, es gab schon genug solcher Themen... aber eher mit nur "unsauberen" Methoden, von wegen IP per Seite ausgeben lassen, aber das kostet Zeit (egal wie schnell).

Gibt es eine "richtige" Methode? wenn ich "ipconfig" aufrufe, zeigt mir das Programm doch auch meine IP an und ich denke nicht das Microsoft das über ne Seite macht ;)

Zitat:

C:\Dokumente und Einstellungen\sub>ipconfig

Windows-IP-Konfiguration


Ethernetadapter LAN-Verbindung:

Verbindungsspezifisches DNS-Suffix:
IP-Adresse (Autokonfig.). . . . . : 169.254.45.50
Subnetzmaske. . . . . . . . . . . : 255.255.0.0
Standardgateway . . . . . . . . . :

PPP-Adapter HanseNet:

Verbindungsspezifisches DNS-Suffix:
IP-Adresse. . . . . . . . . . . . : 80.171.82.129
Subnetzmaske. . . . . . . . . . . : 255.255.255.255
Standardgateway . . . . . . . . . : 80.171.82.129
Kennt sonst noch jemand eine Möglichkeit?

Zacherl 19. Jun 2005 13:53

Re: Eigene (Internet)IP rausfinden
 
Hallo,
lad dir auf meiner Homepage (www.free30.com/florian) unter Delphi die Unit Neo.pas runter. Da ist eine Funktion GetIpAddress dabei, die ihre Daten nicht von einer Seite holt.

Florian

Pseudemys Nelsoni 19. Jun 2005 14:02

Re: Eigene (Internet)IP rausfinden
 
Moin Florian,

das Problem ist, das ich 2 IPS habe (siehe meinen ersten Post mit dem Zitat) und mir die Funktion aus der neo.pas, die erste IP anzeigt. Die zweite ist aber meine Internet IP

Pseudemys Nelsoni 19. Jun 2005 14:11

Re: Eigene (Internet)IP rausfinden
 
Hab schon und zwar hier:

http://www.swissdelphicenter.ch/de/showcode.php?id=67

mfg

scp 19. Jun 2005 14:24

Re: Eigene (Internet)IP rausfinden
 
Das Problem ergibt sich, wenn ein Router dazwischen hängt, dann gibt diese Funktion nur lokale IPs aus. Sollte das Programm für mehr als nur zum Eigenbedarf gedacht sein, reicht diese Funktion dann nicht mehr.

Pseudemys Nelsoni 19. Jun 2005 14:28

Re: Eigene (Internet)IP rausfinden
 
Moin scp,

war das auf die FUnktion der neo-unit bezogen oder auf diese: http://www.swissdelphicenter.ch/de/showcode.php?id=67 hier?

Übrigens was ich mich bei dem Code frage...

Delphi-Quellcode:
function getIPs: Tstrings;
type
  TaPInAddr = array[0..10] of PInAddr;
  PaPInAddr = ^TaPInAddr;
var
  phe: PHostEnt;
  pptr: PaPInAddr;
  Buffer: array[0..63] of Char;
  I: Integer;
  GInitData: TWSAData;
begin
  WSAStartup($101, GInitData);
  Result := TstringList.Create;
  Result.Clear;
  GetHostName(Buffer, SizeOf(Buffer));
  phe := GetHostByName(buffer);
  if phe = nil then Exit;
  pPtr := PaPInAddr(phe^.h_addr_list);
  I   := 0;
  while pPtr^[I] <> nil do
  begin
    Result.Add(inet_ntoa(pptr^[I]^));
    Inc(I);
  end;
  WSACleanup;
end;
Wieso ist das Array gerade 11 Elemente gross?

Ist das die maximale anzahl der IPS die man haben kann oder wie?

scp 19. Jun 2005 15:03

Re: Eigene (Internet)IP rausfinden
 
Es bezieht sich auf beide Routinen, da beide diesselben APIs aufrufen.
[0..10] ist denke ich mal willkürlich gewählt.

Der_Ventilator 13. Aug 2009 14:41

Re: Eigene (Internet)IP rausfinden
 
Zitat:

Zitat von Pseudemys Nelsoni

Delphi-Quellcode:
function getIPs: Tstrings;
  Buffer: array[0..63] of Char;
 ...
begin
...
  GetHostName(Buffer, SizeOf(Buffer));
...

Was muss ich machen, dass der Code auch unter D2009 läuft? Es beschwert sich, dass Buffer an der stelle GetHostName kein Array sein dürfte. Deklariere ich Buffer um zu einem normalen Char, bekomme ich kein Ergebnis zurückgeliefert.

himitsu 13. Aug 2009 14:45

Re: Eigene (Internet)IP rausfinden
 
Delphi-Quellcode:
GetHostName(@Buffer, Length(Buffer));
Es wird ja ein PChar verlangt, also ein Zeiger auf ein CharArray
und Len ist die Länge in Zeichen, und nicht in Byte, also Length statt SizeOf

Könnte aber sein, daß du die Ansiversion der Funktion bei dir definiert hast, dann zusätzlich noch Array of AnsiChar

DeddyH 13. Aug 2009 14:48

Re: Eigene (Internet)IP rausfinden
 
Vielleicht mit
Delphi-Quellcode:
GetHostName(@Buffer[0], SizeOf(Buffer));
:?: Ich hab aber kein D2009, um das auszuprobieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:35 Uhr.
Seite 1 von 2  1 2      

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