PDA

View Full Version : بدست آوردن client ip



saied7468
سه شنبه 02 مهر 1387, 23:29 عصر
با سلام چطور می شه کلاینت ای پی رو زمانی که به اینتر نت وصلی بدست بیاری
تو اینترنت یه راه با استفاده از IdIPWatch معرفی کرده بود اما کلایت ای پی رو به من نشون نمی داد بلکه ای پی کارت شبکه ام رو بهم نشون می داد.
در حقیقت من می خوام این کلایت ای پی رو با استفاده از خود دلفی بدست بیارم.

accpascal
سه شنبه 02 مهر 1387, 23:38 عصر
این آدرس را امتحان کن
yourip.us

saied7468
چهارشنبه 03 مهر 1387, 04:16 صبح
فکنم منظورم رو متوجه نشدید من می خوام این کلاینت ای پی رو با استفاده از خود دلفی بدست بیارم نه از طریق سایت.

Touska
چهارشنبه 03 مهر 1387, 09:02 صبح
Function TMain1.GetIP: 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 //Give My Owen IP Address
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;


این لیستی از IP های سیستم چه در vpn و چه در Dialup و چه در ... توی StringList می ریزه.
فقط Uses Winsock رو هم فراموش نفرمایید، موفق باشید :)