Autor Beitrag
Rool
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 211



BeitragVerfasst: Sa 23.11.02 17:46 
Wie bekomme ich meine eigene IP? Also nicht die lokale sondern die, wenn man im Netz ist!

_________________
MFG Rool
Henry
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 619

WinXP Prof. SP3
D6 Prof.
BeitragVerfasst: Sa 23.11.02 18:38 
Hallo,

Diese Unit habe ich mal irgendwo in den Weiten des Internets oder einem Delphiforum gefunden (Ich möchte mich ja nicht mit fremden Federn schmücken). Leider weiß ich nicht mehr von wem die Unit ist :( Ich kann also nichts näheres dazu sagen. Funktioniert bei mir aber ganz gut, mit dem anzeigen der IP.

Du mußt dann folgendes aufrufen
ausblenden Delphi-Quelltext
1:
Label1.Caption := GetRASIP(1);					

damit erhältst die IP die Dein Provider dir beim einwählen gegeben hat.

Natürlich nicht vergessen Unit einzubinden :)
Unit siehe unten.
ausblenden volle Höhe 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:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
unit InternetIP;

interface

uses Windows;

type
  PRasConn = ^TRasConn;
  TRasConn = record
  dwSize: DWORD;
  hRasConn: THandle; 
  szEntryName: array[0..256of char;
  szDeviceType: array[0..16of char;
  szDeviceName: array[0..128of char;
end;

TRasPPPIP = record
  dwsize: DWORD;
  dwerror: DWORD; 
  szlpAddress: array[0..15of char;
end;

function RASGetProjectionInfo(hRasConn: THandle;
  RasProjection: DWORD;
  var lpRasPPPIP: TRasPPPIP;
  var lpcb: DWORD): DWORD;
  stdcall;

function RASEnumConnections(lpRasConn: Pointer;
  var lpcb: DWORD;
  var lpcConnections: DWORD): DWORD; 
  stdcall

function GetRASIP(Nr: Integer): String;

implementation 

function RASEnumConnections; 
external 'RASAPI32.DLL' name 'RasEnumConnectionsA'
function RASGetProjectionInfo;
external 'RASAPI32.DLL' name 'RasGetProjectionInfoA'

function GetRASIP(Nr: Integer): String
var 
  RasCon:Array[1..25of TRasConn;
  RASSize, RASFilledInBuffer, RASIPSize: DWord; 
  RASPPIp:TRasPPPIP; 
  IPPas:Array[1..16of Char; 
begin 
  Result:='';
  Rascon[1].dwSize := SizeOf(TRasConn); 
  RASSize := SizeOf(TRasConn); 
  if RasEnumConnections(@RasCon,RASSize,RASFilledInBuffer)=0 then begin 
    RASPPIp.dwsize:=SizeOf(TRASPPPIp);
    RASIPSize:=SizeOf(TRASPPPIp); 
    RASGetProjectionInfo(RasCon[Nr].hRasConn,$8021,RASPPIp,RASIPSize); 
    Result:=RASPPIp.szlpAddress;
  end
end;

end.


Moderiert von user profile iconTino: Code- durch Delphi-Tags ersetzt

_________________
mfg Henry
Savage
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 110



BeitragVerfasst: So 24.11.02 11:55 
Hi,

mit der Unit muss man jedoch vorsichtig sein, weil diese Funktion nur für Dial-Up Connections funktioniert. Funktionieren dürfte sie nicht bei Standleitungen oder Internetzugängen via Proxy.

MfG
Savage
Henry
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 619

WinXP Prof. SP3
D6 Prof.
BeitragVerfasst: So 24.11.02 14:44 
Wie gesagt, ich habe sie nicht entwickelt.
Wenn mann sich aber über DFU einwählt funktioniert es.
Soviel kann ich dazu sagen.

Aber Danke für den Hinweis

_________________
mfg Henry
bis11
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: So 24.11.02 17:08 
patmann2001
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 201

Windows 7 Prof.
Delphi XE2
BeitragVerfasst: Mo 25.11.02 00:26 
Hallo

Warum in die Ferne schweifen, wenn das gute liegt so nah? :roll:
Siehe mal den Thread [url=www.entwickler-ecke....viewtopic.php?t=120]
Wie realisiere ich ein Internet-/Netzwerkchat? [/url] in unsem FAQ dort steht folgende Procedure drin.
Zitat:
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:
function getIPs: Tstrings; 
type 
 TaPInAddr = array[0..10of PInAddr; 
 PaPInAddr = ^TaPInAddr; 
var 
 phe: PHostEnt; 
 pptr: PaPInAddr; 
 Buffer: array[0..63of 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;

Die benutze ich auch, sie gibt in der Line[0] die LAN IP zurück und in Line[1] die WAN IP. Ausserdem könnt ihr wie unter Wie lese ich die Internet-IP aus? im FAQ folgende Internetaddresse finden.
Zitat:
checkip.dyndns.org
Damit könnt Ihr überprüfen ob euch die Procedure die richtige IP wiedergegeben hat.

cu Patmannd

Moderiert von user profile iconTino: "auq.de" durch "entwickler-ecke.de" ersetzt
Moderiert von user profile iconTino: Code- durch Delphi-Tags ersetzt