تحديد Ip الخاصة بالاتصال الانترنت, ليس IP الشبكة المحلبة
#1
السلام عليكم و رحمة الله و بركاته
إذا دحلت على الموقع التالى myip فإنه يعطيك IP الذى تشغله في سبكة الإنترنت (و ليس في الشيكة المحلية)
سؤالي هو هل يمكن أن نقوم بهذا العمل بواسطة برنامج Delphi ؟


و الجواب بسط جدا :

كلنا يعرف الموقع http://www.whatismyip.org/ فإنه يعطيك رقم IP الخاص بالإنترنت .
و في المرفقات مثال لاسترجاع رقم IP من هذا الموقع .
:monster1:


الملفات المرفقة
.rar   ip2.rar (الحجم : 227.52 ك ب / التحميلات : 1,965)
الرد
#2
[COLOR="black"]عمل جميل، بارك الله فيك.
هذه الطريقة تقوم بقراءة عنوان IP المكتوب في صفحة الموقع.
فلا يمكن الوثوق في هذه الطريقة بشكل كامل، فقد يتغير محتوى الموقع أو عنوانه في أي لحظة.
يمكن بنفس الطريقة الحصول على IP ومعلومات حول نوع خط الاتصال واسم الموزع واسم البلد من خلال قراءة محتوى الموقع:
كود :
http://www.ip-adress.com/
بالتوفيق.[/COLOR]
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...
الرد
#3
يمكن عمل ذلك مبدئيا بما في المرفقات:


الملفات المرفقة
.rar   GetIPNet.rar (الحجم : 174.71 ك ب / التحميلات : 1,170)
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...
الرد
#4
شكرا ، جميل جدا ،بارك الله فيك أخي Unprogramme لكن لست أدري لما لا يعمل إلا من المسار :
إقتباس :C:\Documents and Settings\Moi\Mes documents\Ramdhane\IP1

يعطي رسالة الخطأ:
إقتباس : E[Erreur fatale] Impossible de créer le fichier de sortie
'C:\Documents and Settings\Moi\Mes documents\Ramdhane\IP1\Ip.exe
مشكور أخي Kachwahad على التعديل و الإضافة الجميلة .
الرد
#5
يمكن كتابة الكود بشكل أفضل:
PHP كود :
function GetBetween(Str, FirstDemarc, SecondDemarc: String): String;
begin
Result 
:= Trim(Copy(Str,
                
Pos(FirstDemarc,Str)+length(FirstDemarc),
                
Pos(SecondDemarc, Str)-Pos(FirstDemarc,Str)-length(FirstDemarc)));
end;

procedure TForm1.Button1Click(Sender: TObject);
Function 
Ip_Internet : String;
  Var 
Acces_Web : TIdHttp;
Begin

  Acces_Web 
:= TIdHttp.Create(Nil);
  Try
    try
  
//or 'http://www.whatismyip.org' to get just IP net.
    
Result := Acces_Web.Get('http://www.ip-adress.com/');
    
except
      MessageBox
(Handle, 'Connection faild!','Error',MB_OK+MB_ICONERROR);
      
end;
  Finally
    
Acces_Web.Free;
  
End;
End;
begin
    Label1
.Caption := GetBetween(Ip_Internet, 'ss: ', '</h2>');
    
Label3.Caption := GetBetween(Ip_Internet, 'g">', '<br>');
    
Label2.Caption := GetBetween(Ip_Internet, 'IP: ', '"content2');
    
Label2.Caption := Copy(Label2.Caption,0,length(Label2.Caption)-51);
end; 
كما يمكن استخراج صورة علم البلد والخريطة وغير ذلك، أو استخدام مواقع أخرى تقدم معلومات أكثر مثل:
كود :
http://whatismyipaddress.com/

اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...
الرد
#6
عمل رائع أخي Kachwahad الله يجزل لك المثوبة و الأجر ، وفقت لكل خير.
الرد
#7
جميل جدا Kachwahad بارك الله فيك .
السؤال المطروح : هل من معلومات أكثر إفادة في تحديد الموقع الدقيق لصاحب الإيبي
أقصد أن مثلا العلم لا يهم في شيء مادام اسم البلد متوفر .
الرد
#8
السلام عليكم
اضافة هذا الكود 100% دلفي و اصغر
PHP كود :
function GetIPAddress: string;
var
  
phoste:PHostEnt;
  
Buffer:array[0..100] of char;
  
WSAData:TWSADATA;
begin
  result
:='';
  if 
WSASTartup($0101, WSAData) <> 0 then exit;
  
GetHostName(Buffer,Sizeof(Buffer));
  
phoste:=GetHostByName(buffer);
  if 
phoste = nil then
  begin
    result
:='127.0.0.1';
  
end
  
else
    
result:=StrPas(inet_ntoa(PInAddr(phoste^.h_addr_list^)^));
  
WSACleanup;
end; 

و الذي قمت به ايضا يعمل و بارك الله فيك على المعلومة Big Grin
الرد
#9
و IP الخاصة بالشبكة الصغيرة
كود :
function GetLocalIP : string; 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 := ''; GetHostName(Buffer, SizeOf(Buffer)); phe :=GetHostByName(buffer); if phe = nil then begin Exit; end; pptr := PaPInAddr(Phe^.h_addr_list); I := 0; while pptr^[I] <> nil do begin result:=StrPas(inet_ntoa(pptr^[I]^)); Inc(I); end; WSACleanup; end;
الرد
#10
إقتباس :و IP الخاصة بالشبكة الصغيرة
شكرا أخي heros
يجب تعريف Winsock في مثالك:
PHP كود :
uses
  Winsock
; 
عندما يوضع أي كود/مثال يجب تجربته أولا.
تحياتي، بالتوفيق.
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 3 ) ضيف كريم