alwahatech

alwahatech (http://www.alwahatech.net/vb/index.php)
-   واحـة لغـات البرمجـة (http://www.alwahatech.net/vb/forumdisplay.php?f=37)
-   -   لدالة في دلفي لمعرفة ip للجهاز الذي تستخدمه عندما تتصل بالانترنت (http://www.alwahatech.net/vb/showthread.php?t=1336)

alwadheh 04-20-2008 09:38 AM

لدالة في دلفي لمعرفة ip للجهاز الذي تستخدمه عندما تتصل بالانترنت
 
بسم الله الرحمن الرحيم
والسلام عليكماليوم معي دالة لمعرفة:ip للجهاز الذي تستخدمه عندما تتصل بالانترنت


للحصول على IP للجهاز الذي تستخدمه عندما تتصل بالانترنت يجب أ ن نستدعي بعض التوابع API الموجودة في الوحدة Winsock
سوف ننشأ تابع GetIPFromHost الذي سوف يستدعي عدد من توابع API للحصول على IP
ولكن قبل استخدام توابع WinSock functions يجب أن يكون عندنا جلسة (session)
يتم إنشاء هذه الجلسة (session) بالتابعWSAStartup وفي النهاية نستدعي التابعSACleanup لإنهاء استعمال مقابس ويندوزWindows (Sockets)
والاّن ضع زر وضع 2 Edit على الفورم وأنشىء التابع التالي GetIPFromHost في implementation

uses Winsock;
function GetIPFromHost
(var HostName, IPaddr, WSAErr: string): Boolean;
type
Name = array[0..100] of Char;
PName = ^Name;
var
HEnt: pHostEnt;
HName: PName;
WSAData: TWSAData;
i: Integer;
begin
Result := False;
if WSAStartup($0101, WSAData) <> 0 then begin
WSAErr := 'Winsock is not responding."';
Exit;
end;
IPaddr := '';
New(HName);
if GetHostName(HName^, SizeOf(Name)) = 0 then
begin
HostName := StrPas(HName^);
HEnt := GetHostByName(HName^);
for i := 0 to HEnt^.h_length - 1 do
IPaddr :=
Concat(IPaddr,
IntToStr(Ord(HEnt^.h_addr_list^[i])) + '.');
SetLength(IPaddr, Length(IPaddr) - 1);
Result := True;
end
Else
begin
case WSAGetLastError of
WSANOTINITIALISED:WSAErr:='WSANotInitialised';
WSAENETDOWN :WSAErr:='WSAENetDown';
WSAEINPROGRESS :WSAErr:='WSAEInProgress';
end;
end;
Dispose(HName);
WSACleanup;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
Host, IP, Err: string;
begin
if GetIPFromHost(Host, IP, Err) then begin
Edit1.Text := Host;
Edit2.Text := IP;
end
else
MessageDlg(Err, mtError, [mbOk], 0);
end;

+HAMZA+ 04-20-2008 09:41 AM

شكرا لك اخي العزيز على المعلوملت القيمة

Amine 04-24-2008 11:56 AM

مشكور يالواضح
لقد جربتها لكن لم يعطيني IP اتصالي بالأنترنت وإنما أعطاني IP جهازي الذي أنا قد كتبته بنفسي والجميع يكتب نفس الرقم


[عزيزي الزائر يتوجب عليك التسجيل لمشاهدة الروابط .. للتسجيل فضلاً اضغط هنا]



ياريت لو عندك طريقة لمعرفة IP الجهاز على شبكة الانترنت

أجدد شكر على المعلومة

ملاحظة: استعمل خاصية إدراج كود في الموضوع حتى يظهر بشكل جيد

[عزيزي الزائر يتوجب عليك التسجيل لمشاهدة الروابط .. للتسجيل فضلاً اضغط هنا]

تحياتي


الساعة الآن 04:10 PM.

Powered by Alwaha® Version
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.

Adsense Management by Losha

new notificatio by 9adq_ala7sas
alwahatech.net