الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ساعدوني لأعرف عنوان ال ip

مغلق
بدأه simo في 27 يونيو 2001 · 22 رد · 2,346 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

تحية طيبة وبعد ..

أريد أن تساعدوني بمرفه عنوان الـ IP.. للكومبيوتر ..

أنا استخدم الخاصة LocalIP

للعنصر Powersock من FastNet في الـ Delphi ، إنه فعال وجيد ..

و لكن عندما يكون للكومبيوتر أكثر من عنوان IP .. لا يعيد هذا العنصر سوى أول عنوانIP موجود للجهاز ..

و أنا أريد الحصول على عنوان الـ IP الذي يعطى للكومبيوتر عند الاتصال في الانترنيت (و الذي يقدمه مقدم خدمة الانترنيت) ..

عند عدم وجود شبكة داخلية .. يمكنني الحصول على هذا العنوان ببساطة .. لأنه عنوان الـ IP الوحيد ..

أما إذا كان الكومبيوتر موصول بشبكة .. و متصل مع لانترنيت بنفس الوقت .. فسيمتلك عنوانين IP واحد للشبكة و آخر للشبكة الاتصال الهاتفي .. و هنا المشكلة العويصة..

:-)

سأكون شاكر كثيراً لكم إذا أرشدتموني على طريقة لحل هذه المشكلة ..

و الرجاء أن ترسلوا لي نسخة من الحل .. طبعا إذا لم يكن فيها أي إزعاج .. على عنوان بريدي الإلكتروني

H2SIMO@VISTO.COM

#2

اخي الكريم انا ليس لي خبرة في دلفي ولكن اود توضيح امر بناء على مافهمت وهو في حال كنت على شبكة داخلية فان رقم الاي بي بك يكون رقم الجهاز ويتم تحديده من قبل السيرفر وهو يبقى ثابت الى بتحديد خاصية اعطاء رقم معين وتبقى هذه الارقام ضمن نطاق محدد من السيرفر

عند دخولك للانترنت عن طريق شبكة داخلية فان رقم الاي بي يكون واحد لجميع الاجهزة حيث ان السيرفر هو الذي ياخذ هذا الاي بي ويقوم بتوزيعه على الاجهزة المتصله به عن طريق رقم الاي بي المحدد لهم من قبل السيرفر ولا يمكن اخذ اكثر من رقم اي بي واحد لكل هاز هذا والله اعلم

جديد مدونتي الشخصية http://www.badwi.com

ادعو لنا بظاهر الغيب

MyBooksExchange.jpg

#3

الأخ العزيز محمد بدوي توضيحك سليم 100% .. و لكن يوجد بعض الحالات التي يكون بها لجهاز الكومبيوتر أكثر من عنوان IP واحد.

مثلاً عند استخدامك لجهاز كومبيوتر كبوابة gateway بين شبكتين يكون لهذا الجهاز اكثر من عنوان IP..

ففي هذه الحالة يكون لهذا الكومبيوتر عنوان IP خاص في كل شبكة متصل بها..

طبعاً هذا الكلام صحيح شرط أن يتم تركيب بطاقتين للشبكة في الجهاز، و استخدام نظام تشغيل يسمح بهذا مثل Windows NT..

كما يمكن أن يكون لنفس الجهاز أكثر من عنوان IP واحد في الأجهزة الخادمة Server،

فمثلاً يسمح الـ Windows 2000 advanced Server بتحديد أكثر من عنوان IP لنفس الـ server.

و الأمر الذي أنا بحاجة ملحة له ..

هو طريقة برمجية لمعرف عناوين الـ IP التي تمتلكها كل بطاقة شبكة في الكومبيوتر.

و بشكل خاص عنوان IP للـ Dialup Adapter ، و الذي يكون عاداً عنوان IP يعطى للكومبيوتر من قبل مقدم خدمات الانترنيت، و يتغير في كل مرة يتم بها الدخول إلى الانترنيت..

#4

اكتب في محث الاوامر:

ipconfig/all

ثم انتر ستجد الإعدادات الخاصة بكرت الشبكة الخاصة بالشبكة الداخلية

وإعدادات فاكس الموديم المتصل بالانترنت ورقم الاي بي لكل منهما

#5

كلام الاخ سيمو صحيح , فيوجد عنوان داخلي للشبكة و عنوان خارجي في حالة الاتصال بالانترنت , فاي جهاز على الانترنت له عنوان خاص به لا يوجد متيل له ,

اوضح اكتر

نفرض انه توجد لدينا شبكة متكون من 5 اجهزة ويوجد سيرفر ,

هذه الاجهزة تدخل على domain الموجود في السيرفر , في هده الحالة يجب ان يكون للشبكة IP Address داخلي خاص بها نفرض انه يبدا من 122.33.33.10 الى 122.33.33.50 .

هذه العناوين داخلية خاصة بالشبكة الداخلية .

وعندما نريد الاتصال بالانترنت في هذه الحالة , عندما يتصل كل جهاز بالانترنت فانه ياخد عنوان اخر خاص به على الانترنت وذلك حسب مقدم خدمة الانترنت الرئيسي .

وفي الحقيقة لا اعرف بالضبط الكمبونتت التي يمكن ان تؤدي هذا الغرض ,لكني سابحت عنها بادن الله , و يمكن ان يساعدنا الاخ سم في ذلك فله خبرة في هذا المجال .

وشكرا

#6

بسم الله الرحمن الرحيم

اخي العزيز simo اهلاً وسهلاً بك معنا في منتدى الدلفي

طبعاً جواب سؤالك هو حسب الآتي

اليك هذا الكود :

function LocalIP: 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 Exit;

pPtr := PaPInAddr(phe^.h_addr_list);

I := 0;

while pPtr^ <> nil do

begin

Result := inet_ntoa(pptr^^);

Inc(I);

end;

WSACleanup;

end;

---------

طبعاً يلزمك انك تظيف Winsock في uses

وإن شاء الله تكون هي ماتبحث عنه

تقبل اطيب تحياتي اخوكم SUM

#7

اخي العزيز سم , مشكور كتيرا على مجهودك ,

لكن عندما جربت الكود , طلع عندي مجموعة اخطاء .

صلحت منها لكني لم استطع تصحيح العبارة

Result := inet_ntoa(pptr^^);

فهو يعطي انها يوجد خطاء في توافق بارمترات الدالة inet_ntoa .

وعندما بحت عنها في الهيلب وجدت انها معرفة كالتالي

char FAR * inet_ntoa (

struct in_addr in

);

اي انها تاخد بارامتر من نوع in_addr

ولكن pptr هو مصفوفة من المؤشرات .

فهل يمكن ان توضح لنا سبب ضهور الخطا

وشكرا

#8

شكراً لجميع الاخوة الذين قدموا اقتراحات و توضيحات ..

لقد جربت الإجراء الذي أرسله الأخ SUM مشكوراً .. و لكن كما حصل مع الأخ MADI لم يعمل معي ..

فهل من الممكن أن توضح لنا يا أخ SUM سبب ظهور هذه المشكلة..

و هل من الممكن أن تشرح لي فكرة هذا الإجراء و أسلوب عمله .. مع شكري الكبير لك و تقديري لكل مساهماتك القيمة ..

وشكراً للجميع مرة ثانية ..

#9

بسم الله الرحمن الرحيم

لقد قمت بعمل برنامج بسيط بين لكم العمليه

وهو طبعاً مع السورس

ويمكنكم تحميله من العنوان التالي

http://www.8op.com/sum/ip.zip

واذا واجهتكم اي مشكله فأرجوا منكم ان تخبروني

وتقبلوا اطيب تحياتي اخوكم SUM

#10

الأخ SUM

شكراً جزيلاً على البرنامج ..

و لكني للأسف لم أتمكن من تحميله .. لأن الـ Proxy العنيد الذي عندي رفض ذلك ..

هل من الممكن أن أزعجك بأن ترسله لي نسخة منه على بريدي الإلكتروني..

ساكون ممتناً لك جداً ..

و في الختام لك مني كل التحية و السلام ..

hani SIMO

#11

اخي العزيز simo

ممكن تعطيني عنوان بريدك لكي اقوم بارسال الكود اليك

تقبل اطيب تحياتي اخوك SUM

#12

شكراً أخ sum

عنوان بريدي الالكتروني هو ..

H2SIMO@VISTO.COM

وشكرا ..

#13

الأخ SUM

شكراً على البرنامج الرائع ..

و لكن لدي سؤال .. كيف سأميز عنوان الـ IP الذي يخص الـ Deal up adapter من العناوين التي يعطيني إياها هذا البرنامج ..

و في الختام لكم مني كل التحية و السلام ..

#14

اخي سم ,

ياريت تتفق مع ادارة المنتدى على طريقة بحيت تضع فيها برامجك في المنتدى ليتسنى للجميع انزالها .

ياريت المشرفين على المنتدي يساعدونا , لتعم الاستفادة .

وشكرا

وهذا الايمايل : ارجو ان ترسلي الملف .

ma_d_i@yahoo.com

#15

اخي العزيز simo

ممكن توضح قصدك ب Deal up adapter

وتقبل اطيب تحياتي اخوك SUM

#16

الأخ العزيز SUM

أنا آسف على الخطأ المطبعي أولاً ..

أنا قصدت الـ Dial Up Adapter

و هو كرت الشبكة الافتراضي الذي يضاف عند عملنا لإعدادات الانترنيت في الـ Windows..

و يكون عنوان الـ IP لهذا المحول (أو الكرت الافتراضي).. هو نفسه عنوان الـ IP الذي يعطيه مقدم خدمات الانترنيت للكومبيوتر عند الاتصال بالانترنيت.

الأخ SUM

هل أستطيع أن أعرف أي من العناوين التي يعيده برنامجك .. هو العنوان الخاص بالـ Dial Up Adapter..

آسف مرة أخرى على الخطأ ..

وشكراً جزيلاً لك ..

HANI

#17

بسم الله الرحمن الرحيم

اخي العزيز simo

على مافهمت من قصدك

انك تبغا تعرف الأي بي هذا جاي من وين (( يعني هل هو رقم الأي بي حق الأنترنت ام حق الشبكة ))

اذا كان هو قصدك فأنتظرني لكي اقوم بعمل مثال لذلك

وتقبل اطيب تحياتي اخوك SUM

#18

الأخ العزيز SUM

الكلام الذي قلته لي هو ما أرديه بالضبط

و أنا بانتظار التوضيح ..

و شكراً لك كثيراً ..

Hani SIMO

#19

اخي العزيز simo

اليك هذا البرنامج

http://mypage.ayna.com/sorini99/ip.zip

وتقبل اطيب تحياتي اخوك SUM

#20

لم أتمكن بعد من إيجاد حل لهذه المشكلة..

لذلك سأعيد توضيح طلبي مرة أخرى..

أريد معرفة كل عنواين الـ

IP

الخاصة بكومبيوتر ما..

و معرفة من أين يأتي هذا العنوان..

أي أني أود معرفة أرتباط كل عنوان مع كرت الشبكة المرافق له.

و بشكل خاص أنا مهتم.. بطريقة أتمكن بها من الحصول على عنوا الـ

IP

الخاص بـ

Dial-Up Networking

التابعة لـ

Dial-Up Adapter

و سأكون شاكراً جدا لكم.. إذا تمكنتم من مساعدتي في هذا الموضوع..

طبعاً.. مع كل شكري للأخ العزيز SUM و للجهود التي بذلها من أجل المساعدة..

في الختام لكم مني كل التحية و السلام..

كل عام و انتم بألف خير.. و أتمنى لكل أعضاء الفريق العربي للبرمجة كل النجاح و التوفيق..

هاني سيمو

http://h2simo.tripod.com

#21

سلام

ربما تحتاج لمكون يتعامل مع عناوين MAC لكروت ايثرنت

جرب احداها

#22

شكرا ...

هل من الممكن على مكان ممكن ان اجد به مثل هذه المكونات التي تتعامل مع عناوين MAC لكروت ايثرنت

وشكرا لك مرة ثانية ..

هذا الموضوع مغلق.

مواضيع مشابهة