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

كيف اعرض قائمة المنافد ports

مغلق
بدأه زكيري عبد العالي في 21 يونيو 2002 · 12 رد · 1,692 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم طلب من الاخوة

اريد كود يعمل هدا

يسمح بقراءة المنافد (port) الموجودة في جهاز كمبيوتر ثم يعرض قائمة

فيها ......اسم المنفد ......البرنامج الدي يستعمل هدا المنفد

#2

وعليكم السلام

يا مشرفنا هل نسيت مشروع قاعدة البيانات أم أنك تشتغيل على عدة جبهات

انظر الرابط

وهذا أيضاً

لعل فيها ما تريده ....... لست خبيراً ولم أجرب

(f)

#3

اشكرك على الرد

لكن امور الدنيا صعبة ويجب العمل في عدة ميادين ويارب نصل وخاصة في بلادنا

اخوي مند مدة وانا اريد البرمجة في الشبكاة وايضا صنع المواقع بالدلفي

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

لم انسى المشروع ولن انساه لانه وعد .(f)

#4

السلام عليكم

ممكن اعرف الــ windows اللي لديك ؟

ان كنت تقصد فكره الـ Firewall فذلك يعتمد على Drivers Programing بنوعيها Vxd , WDM .

هل ما تريده هو ما يقوم به الامر netstat في win2k/xp (فقط )

والامر هو :

netstat -o

والذي سيقوم باعطاءك المعلومات كالاتي

Proto Local Address Foreign Address State PID

هناك برنامج اسمه FPort يؤدي نفس المهمه ( فقط لـ win2k/xp ) .

ان كان هذا هو ماتريده فيمكن عمل ذلك باستخدام دوال الـ Native api , وهذه هي الفكره التي استخدمها netstat و FPort .

منتظر ردك .

(f)

هناك حتى الأحلام أصبحت ممنوعة ...

إنه لعار أن ننتمي لهكذا أوطان ... لكن ... ربما العار أن نكون نحن أبناء لتلكم أوطان .. من يدري ؟!!

ليعلم أولئك ... إنّ الشعوب إنْ هي استيقظت تسحق ظُلامََهَا ...

There, even in dreams u r wanted

To be a programmer, how a nice dream it was

Leaving ...

أعيدوا لإسمي لونه المفضل

#5

السلام عليكم

عذرا للخطأ الذي حصل في ردي السابق .

لقد اتضح لي ان netstat التابع لـ win2k/xp يستخدم الدوال الموجوده في iphlpapi.dll , والدوال هي :

Quick View Plus
iphlpapi.dll
Ordinal	Function Name	

003f	GetUdpStatsFromStackEx
0020	GetIcmpStatsFromStackEx
0006	AllocateAndGetTcpExTableFromStack //( * )
0031	GetIpStatsFromStackEx
0008	AllocateAndGetUdpExTableFromStack //( * )
0039	GetTcpStatsFromStackEx

الدوال المشار اليها بـ ( * ) هي التي تهمنا في هذا الموضوع .

(f)

هناك حتى الأحلام أصبحت ممنوعة ...

إنه لعار أن ننتمي لهكذا أوطان ... لكن ... ربما العار أن نكون نحن أبناء لتلكم أوطان .. من يدري ؟!!

ليعلم أولئك ... إنّ الشعوب إنْ هي استيقظت تسحق ظُلامََهَا ...

There, even in dreams u r wanted

To be a programmer, how a nice dream it was

Leaving ...

أعيدوا لإسمي لونه المفضل

#6

السلام عليكم

وددت ان أضيف شيئا اخر .

بالنسبه لبرنامج FPort

http://www.sometips.com/soft/fportng.zip

فكما قلت مسبقا فانه يستخدم دوال native api . والداله هي NtQuerySystremInformation (او ZwQuerySystemInformation ) .

هذا جزء من كود البرنامج بعد disasm للبرنامج

* Reference To: ntdll.ZwQuerySystemInformation, Ord:035Ah

:004025C2 8B2D2C914100            mov ebp, dword ptr [0041912C]
:004025C8 83C404                  add esp, 00000004
:004025CB 8BD8                    mov ebx, eax
:004025CD 6A00                    push 00000000
:004025CF 6800140000              push 00001400
:004025D4 53                      push ebx
:004025D5 6A10                    push 00000010
:004025D7 FFD5                    call ebp

:004025D9 3D040000C0              cmp eax, C0000004
:004025DE 7530                    jne 00402610
:004025E0 56                      push esi

قبل استدعاء الداله في العباره call ebp ,نلاحظ اربع جمل push , هنا شرحها المختصر :

الداله NtQuerySystemInformation لها اربع حدود ( 4 parameters ) , تصريح الداله كالاتي :

function NtQuerySystemInformation (infoClass: DWORD;
                buffer: Pointer;
                bufSize: DWORD;
                returnSize: TPDword):
                DWORD; stdcall; external 'ntdll.dll'
 name 'ZwQuerySystemInformation';

يمكن مراجعة الموضوع "Delphi&Native API " لمزيد من المعلومات عن الداله .

جمل push الاربع السابقه تعمل على تمرير القيم الى المتغيرات الاربع .

طبعا عمليه التمرير من اليمين الى اليسار اي يتم اولا تمرير القيمه الى المتغير الموجود في اقصى يمين تصريح الداله ( returnsize ) . لذلك عند التصريح بالداله في دلفي استخدمنا stdcall .( لمعلومات عن stdcall راجع delphi help ) . هنا ساضع جزء مما هو مذكور في الـ help

Directive	Parameter order	Clean-up	Passes parameters in registers?
register	Left-to-right	Routine	Yes
pascal	Left-to-right	Routine	No
cdecl	Right-to-left	Caller	No
stdcall	Right-to-left	Routine	No
safecall	Right-to-left	Routine	No

ما يهمنا من الكود الناتج بعد Disasm هي قيمه infoClass وهي (00000010H) اي 16 بالنظام العشري , باعطاء هذه القيمه للمتغير فاننا بذلك نريد الحصول على معلومات من النوع SystemHandleInformation .

اما بالنسبه للمتغير الثاني فانه عباره عن مؤشر لمتغير من النوع _System_Handle_Infomation .

كنت اود مواصلة الكتابه في الموضوع لكن "شوشو" وسوس لي وقال ان اوقف عن الكتابه لذا ....

ان كان هناك من له اهتمام بالموضوع وبتحليل برنامج FPort و استخدام داله native api السابقه -ان شاء الله - سأحاول ابحث في الموضوع .

ربما يكون استخدام دوال iphlpapi.dll اسهل بكثير .

(f)

هناك حتى الأحلام أصبحت ممنوعة ...

إنه لعار أن ننتمي لهكذا أوطان ... لكن ... ربما العار أن نكون نحن أبناء لتلكم أوطان .. من يدري ؟!!

ليعلم أولئك ... إنّ الشعوب إنْ هي استيقظت تسحق ظُلامََهَا ...

There, even in dreams u r wanted

To be a programmer, how a nice dream it was

Leaving ...

أعيدوا لإسمي لونه المفضل

#7

اخي tmaaa شكرا هده الدوال

لكن والله انا محتار فيها لانني لم يسبق لي حتى رايتها والله الدلفي كبيير ومازال المشوار بعيد .

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

ارجو ان توافق مادمت لم توافق على الاشاف وافق على تقديم الدروس

والله يجازيك خيرا .

(f) (f) (f) (f) (f) (f) (f)

#8

السلام عليكم

هلا اخ زكيري .

بالنسبه للطريقتين التي ذكرتهما في ردي السابق ساقوم - ان شاء الله - بشرحهما في العطله :D ( طبعا اذا تمكنت من استخدامهما ,ما اعلمه فقط نظريا ) .

بالنسبه لاستخدام الدوال الموجوده في iphlpapi فلم الق معلومات عنها سوى البرنامج الذي كتبه "Mark Russinovich " وهو مكتوب بالسي , يمكنك ان تحصل عليه هنا ( هناك source code ) :

http://www.sysinternals.com/ntw2k/source/tcpview.shtml

هناك مثال مكتوب بالدلفي شبيه بما يقوم به netstat لكنه لايعرض اسماء الـ process التي تستخدم الـ ports ( هذه هي الفكره الاساسيه الصعبه في الموضوع ) .

تحصل على الكود هنا

http://www.csdn.net/cnshare/soft/openfile....?kind=1&id=5343

او

http://v-lan.com.cn/oopsware/download/Netstat.zip

(f)

هناك حتى الأحلام أصبحت ممنوعة ...

إنه لعار أن ننتمي لهكذا أوطان ... لكن ... ربما العار أن نكون نحن أبناء لتلكم أوطان .. من يدري ؟!!

ليعلم أولئك ... إنّ الشعوب إنْ هي استيقظت تسحق ظُلامََهَا ...

There, even in dreams u r wanted

To be a programmer, how a nice dream it was

Leaving ...

أعيدوا لإسمي لونه المفضل

#9

السلام عليكم

أعتقد ايضا مكون ActivePort يقوم بالعملية التي تود، تجده في هذه الصفحة

http://www.torry.net/sockets.htm

مع تحياتي

والسلام

لا تحزن:

إن كنت فقيرا فغيرك محبوس في دين، وإن كنت لا تملك وسيلة نقل فسواك مبتور القدمين، وان كنت تشكوا من آلام فغيرك يرقدون على الاسرة البيضاء و من سنوات، وان فقدت ولدا فغيرك فقد عددا من الأولاد و في حادث واحد.

لا تحزن:

فأنت تشرب الماء الزلال، و تستنشق الهواء الطلق، و تمشي على قدميك معافى، و تنام ليلك آمنا.

#10

السلام عليكم

مشكور اخ محمد .

المكون كان قد أشار اليه الاخ الهذلي في رده .

حاولت تحربته ولكن صادفت مشكله في المثال المرفق بالمكون .

اود ان اعرف ان كان المكون يعطي الــ process المستخدمه للـ Port ام لا . هل هناك من جربه و لم يواجه مشكله ؟؟

انا استخدم delphi6 في نظام winxp .

(f)

هناك حتى الأحلام أصبحت ممنوعة ...

إنه لعار أن ننتمي لهكذا أوطان ... لكن ... ربما العار أن نكون نحن أبناء لتلكم أوطان .. من يدري ؟!!

ليعلم أولئك ... إنّ الشعوب إنْ هي استيقظت تسحق ظُلامََهَا ...

There, even in dreams u r wanted

To be a programmer, how a nice dream it was

Leaving ...

أعيدوا لإسمي لونه المفضل

#11

السلام عليكم

عزيزي زكيري .

لقيت برنامج يقوم بالشئ الذي تريده تماما ;) ;)

http://www.sometips.com/soft/aports.zip

او تجده هنا

http://www.smartline.ru/software/aports.zip

شوف البرنامج و ان اعجبك نحاول نجيب اجله مع بعض ;) .

(f)

هناك حتى الأحلام أصبحت ممنوعة ...

إنه لعار أن ننتمي لهكذا أوطان ... لكن ... ربما العار أن نكون نحن أبناء لتلكم أوطان .. من يدري ؟!!

ليعلم أولئك ... إنّ الشعوب إنْ هي استيقظت تسحق ظُلامََهَا ...

There, even in dreams u r wanted

To be a programmer, how a nice dream it was

Leaving ...

أعيدوا لإسمي لونه المفضل

#12

السلام عليكم

شكرا لك أخي العزيز Tamaa على التنبيه واعتذر للأخ الهذلي، لكني لم ارى المشاركات التى كان وضعها

عموما هذا المكون جربته مع دلفي 6 من فترة ولكن ليس مع ويندوز اكس بي، وجربته الان وتظهر مشكلة اثناء محاولة تشغيل البرنامج، ولم اعرف السبب

لكن سوف يتم توليد ملف exe وهو يعمل جيدا من غير اي مشاكل، جرب ذلك واخبرني بالنتيجة

مع تحياتي

والسلام

لا تحزن:

إن كنت فقيرا فغيرك محبوس في دين، وإن كنت لا تملك وسيلة نقل فسواك مبتور القدمين، وان كنت تشكوا من آلام فغيرك يرقدون على الاسرة البيضاء و من سنوات، وان فقدت ولدا فغيرك فقد عددا من الأولاد و في حادث واحد.

لا تحزن:

فأنت تشرب الماء الزلال، و تستنشق الهواء الطلق، و تمشي على قدميك معافى، و تنام ليلك آمنا.

#13

السلام عليكم

أخي العزيز محمد

جربت المثال ويعطي الخطأ "List index out of bounds (x)" , حيث x عباره عن رقم يتغير كل مره . :(

كما ان هناك مشكله اخرى فيبدو ان البرنامج لا يعطي اي معلومات عن الــ process المستخدمه للـ port . هذه هي النقطه الصعبه في الموضوع .

(f)

هناك حتى الأحلام أصبحت ممنوعة ...

إنه لعار أن ننتمي لهكذا أوطان ... لكن ... ربما العار أن نكون نحن أبناء لتلكم أوطان .. من يدري ؟!!

ليعلم أولئك ... إنّ الشعوب إنْ هي استيقظت تسحق ظُلامََهَا ...

There, even in dreams u r wanted

To be a programmer, how a nice dream it was

Leaving ...

أعيدوا لإسمي لونه المفضل

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

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