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

تابع ... برمجة الشبكات ،،

مغلق
بدأه بنت اليمن في 1 فبراير 2004 · 11 رد · 1,314 مشاهدة · في المواضيع والدروس
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ...

و كل عام و الجميع بخير ...،،

مشرفنا العزيز HGB ارجوا ان لا يزعجك فتح ملف برمجة الشبكات من جديد و لكني اردت وضع برنامج عن فتح و غلق المنافذ TCP/UDP Ports كوننا كنا نريد التحدث عن ذلك عند فتح موضوع برمجة الشبكات ... مشكلة البرنامج انه مكتوب بلغة VB و ليس بالـ C ،،، عموما انا ارفق لكم البرنامج على امل ان تتم مناقشة هذا الموضوع ،،،

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

بنت اليمن ،،

لا اله الا الله .. محمد رسول الله

(* ربِ اجعلني مقيم الصلاة و من ذريتي ، ربنا و تقبل دعـاء *)

يا حيّ يا قيـوم ... برحمتك استغيث ... اصلح لي شأني كله و لا تكلني الى نفسي طرفة عين

#2

السلام عليكم ,,

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

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#3

السلام عليكم ...

الاخ الكريم HGB ... اعتذر عن اضافة الموضوع هنا ... و لكني احاول منذ ايام انزال الموضوع في صفحة برمجة الشبكات و لكن بدون فائدة ...!

و اشكرك على الاهتمام بموضوعي ( على الرغم من الاقبال القليل على موضوع برمجة الشبكات ... و لا اعرف لماذا ؟؟ ) ... و ارجوا من الله ان يجزيك كل خير و كذلك الاخ الكريم chik و الاخ PerfectStranger ... جميعكم اكثر من مبدعين ...

الاخ HGB :

اقتباس
هكذا دخلنا ونحن لانعلم الى امكانية كتابة برامج FireWall أمثال ال ZoneAlarm حيث يمكن التحكم بشكل كامل ,, بالمنافذ ,,

في الحقيقة هذا ما اهدف اليه .. و تحديداً برنامج Firewall يتم التحكم عن طريقه بجميع منافذ الـ Workstations و عن طريق الـ Server فقط ...

قد بدأت المشروع بلغة ++C ... و لكني وجدت الطريق وعر فأكملت بالـ VB ...

و اريد ان اضع هنا اي شيء اصل له و ان كان بلغة VB .. فهل هذا ممكن ،، ؟

لمعلومات اكثر عن IpHelper ممكن الدخول الى هذه الصفحة (( و طبعا VB ))

http://www.vbip.com/iphelper/default.asp

او الى الصفحة التالية (( و بلغة ++C )) ..

http://www.codeproject.com/internet/winnetstat.asp

اقتباس
حيث مصطلح اغلاق منفذ حسب علمي حتى الآن ليست دقيقة تماما ,, بل يجب أن يقال عمل BLOCK

كلامك صحيح ،،، حيث اني دوماً عندما ابحث عن عملية غلق المنافذ ،، اجد اني احصل على هذا المصطلح Block ....

الاخ chik :

فقط اريد ان اسأل اين انت ؟؟؟ ... اين مشاركتك التي "وزنها ذهب " ...

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

بنت اليمن ،،،

لا اله الا الله .. محمد رسول الله

(* ربِ اجعلني مقيم الصلاة و من ذريتي ، ربنا و تقبل دعـاء *)

يا حيّ يا قيـوم ... برحمتك استغيث ... اصلح لي شأني كله و لا تكلني الى نفسي طرفة عين

#4

السلام عليكم و رحمة الله و بركاته

حتى الآن استطعت حل جزء صغير من المشكلة :

التابع SetTcpEntry لا يقوم بإغلاق منفذ بل يقوم باغلاق اتصال و لهذا أقول اغلاق و ليس block هنا .. أي أن هذه الدالة تفيدنا فقط في انهاء اتصال و لكن كما تقول الأخت بنت اليمن ما نريده هو تحكم كامل كما في ال FireWall أي أنه ما زال لدينا مشكلتان :

الأولى نريد عمل block لأي منفذ كان مهما كان بروتوكوله و مهما كان حاله

الثانية بعد حل المشكلة السابقة نريد تنفيذها على Remote computer و ليس على صديقنا الأليف Local الذي يطيعنا في كل شيء :) و أتوقع أن ذلك سيكون بواسطة RPC (remote procedure call) فالرجاء ممن عنده باع في هذا المجال أن يعلمنا

هذا هو الكود الذي توصلت إليه

#include <stdio.h>
#include <winsock2.h>
#include <iphlpapi.h>

char* state[] = {	"CLOSED",
   	 "LISTEN",
   	 "SYN_SENT",
   	 "SYN_RCVD",
   	 "ESTABLISHED",
   	 "FIN_WAIT1",
   	 "FIN_WAIT2",
   	 "CLOSE_WAIT",
   	 "CLOSING",
   	 "LAST_ACK",
   	 "TIME_WAIT",
   	 "DELETE_TCB"
};

BYTE* Buff_tcp;
BYTE* Buff_udp;
PMIB_TCPTABLE tcp;
PMIB_UDPTABLE udp;

void DisplayTcpTable()
{
	DWORD size =0;
	GetTcpTable(NULL, &size, FALSE);
	Buff_tcp = new BYTE[size];

	if (GetTcpTable((PMIB_TCPTABLE)Buff_tcp, &size, TRUE) != NO_ERROR)
	{
  printf("Error reading TCP table\n");
  return;
	}
	tcp = (PMIB_TCPTABLE)Buff_tcp;
	in_addr stAddr,stAddr_remote;

	printf("TCP active connections :\n");
    printf("Local Address :\t\tRemote Address :\t\tState :\n");

	for(u_long y = 0; y < tcp->dwNumEntries; y++)
	{
  u_long ulLocalAddress = static_cast<u_long>(tcp->table[y].dwLocalAddr);
  stAddr.s_addr = ulLocalAddress;

  u_long ulRemoteAddress = static_cast<u_long>(tcp->table[y].dwRemoteAddr);
  stAddr_remote.s_addr = ulRemoteAddress;

  printf("%s : %d\t\t", inet_ntoa(stAddr), ntohs(tcp->table[y].dwLocalPort));
        u_short port = (tcp->table[y].dwState == MIB_TCP_STATE_LISTEN ? 0 : ntohs(tcp->table[y].dwRemotePort));
  printf("%s : %d\t\t%s\n", inet_ntoa(stAddr_remote), port, state[tcp->table[y].dwState -1]);
	}
	printf("\n");
}

void DisplayUdpTable()
{

	DWORD size =0;
	GetUdpTable(NULL, &size, FALSE);
	Buff_udp = new BYTE[size];

	if (GetUdpTable((PMIB_UDPTABLE)Buff_udp, &size, TRUE) != NO_ERROR)
	{
  printf("Error reading UDP table\n");
  return;
	}
	udp = (PMIB_UDPTABLE)Buff_udp;

	in_addr stAddr;

	printf("UDP active connections : \n");
    printf("Local Address :\n");

	for(u_long y = 0; y < udp->dwNumEntries; y++)
	{
  u_long ulLocalAddress = static_cast<u_long>(udp->table[y].dwLocalAddr);
  stAddr.s_addr = ulLocalAddress;

  printf("%s : %d\n", inet_ntoa(stAddr), ntohs(udp->table[y].dwLocalPort));
	}
	printf("\n");
}

void main(int argc, char* args[])
{
	DisplayTcpTable();
	DisplayUdpTable();
    if (argc != 1 && strcmp(args[1], "-close") ==0)
    {
        u_short port;
        printf("Enter a TCP connection's local port to close : ");
        scanf("%d", &port);

        MIB_TCPROW mib_tcp;
        mib_tcp.dwState = 0;
        for (u_long i = 0; i < tcp->dwNumEntries; i++)
            if (tcp->table.dwLocalPort == htons(port) &&
                tcp->table.dwState == MIB_TCP_STATE_ESTAB)
            {
                memcpy(&mib_tcp, &tcp->table, sizeof (mib_tcp) );
                mib_tcp.dwState = MIB_TCP_STATE_DELETE_TCB;
                break;
            }

        if (mib_tcp.dwState == MIB_TCP_STATE_DELETE_TCB)
        {
            DWORD ret = SetTcpEntry(&mib_tcp);
            if (ret != NO_ERROR)
            {
                LPVOID lpMsgBuf;
                FormatMessage(  FORMAT_MESSAGE_ALLOCATE_BUFFER |
                                FORMAT_MESSAGE_FROM_SYSTEM |
                                FORMAT_MESSAGE_IGNORE_INSERTS,
                                NULL,
                                ret,
                                MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
                                (LPTSTR) &lpMsgBuf,
                                0,
                                NULL
                                );

                MessageBox( NULL, (LPCTSTR)lpMsgBuf, "Error", MB_OK | MB_ICONINFORMATION );
                LocalFree( lpMsgBuf );
            }
            else
                printf("port %d closed\n", port);
        }
        else
            printf("no connection on port %d\n", port);
    }
    delete []Buff_tcp;
    delete []Buff_udp;
}

نريد همتكم يا اخوتي لأنه شكله الهمة بردت :)

بالمناسبه أدعوكم جميعا لمشاهدة برنامج عمرو خالد الجديد و هو صناع الحياة لأنه فعلا مشروع رائع و هذا ما نحتاجه الآن لنتقدم .. موعده الثلاثاء الساعة 18 GMT و يعاد الأربعاء 13.30 GMTعلى قناة اقرأ و أرجو أن تبلغوا كل أصدقاءكم عنه و ان شاء الله يعود بالخير علينا و عليكم

السلام عليكم

على فكرة : طلعت روحي شي ألف مرة و أنا عم حاول ضيف رد !!!

ports.zip

#6

السلام عليكم ,,

المشكلة أن اضافة الردود تثير الأعصاب ,, والاخ محمد بدوي غير موجود حاليا لظروف غامضة ,, لكن اذا حضر يمكن حل المشكلة فورا ,, أتمنى أن لايتغيب كثيرا ,,

أمر آخر أنني حاليا بدأت الامتحانات وسأنتهي خلال اسبوعين ونصف ,, وسأعود بعدها بكل قوة ,,

وأرجو منكم ان لاتتوقفو عن البحث والعمل ,, وسأدخل باذن الله هذه الفترة كل يومين فترة ثلث ساعة لأنظر في المستجدات ,, بارك الله فيكم ونفع بكم ,,

وبالفعل برنامج عمرو خالد مذهل ورائع جدا ,, وهو مانحتاجه تماما ,,

وأشكر الأخ أبو أحمد C&DEL بشكل خاص على اجتهاده الواضح لكي لايموت المنتدى :huh: وأرجو أن تستمرو على هذا النشاط ,, وسأعود قريبا لأتفرغ بشكل تام للمنتدى ,, وأرجو منكم أن لاتنسونا من صالح الدعاء ,,

وفقكم الله ,,

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#7

السلام عليكم

وين هالغيبة ؟ قلت لحالي الشباب كسروا الدف و بطلوا الغنا :)

ان شاء الله بالتوفيق يا HGB بامتحاناتك و ان شاء الله أعلى معدل يكون من نصيبك و بالنسبة للإخوة يلي ما عندهم امتحانات نحن عم ننتظر مشاركنا أفكارهم

أخي C&DEL همتك عالية ان شاء الله و مجهودك مشكور الله يعطيك العافية

السلام عليكم

#8

السلام عليكم,

في الحقيقة كنت أود المشاركة في هدا الموضوع الشيق لكن كنت غائبا هده الأيام الأخيرة وزادني هم ومشكل وضع الردود في هدا المنتدى حيث يتطلب دلك الوقت الكثير لوضع رد واحد زيادة عن ضياع بعض الردود مما يستجيب كتابتها مرة ثانية وهدا في الحقيقة مقلق وفيه مشقة.

لا أدري هل أستطيع إدراج هدا الموضوع ولكن سأحاول حتى يعرف اإخوان أني معهم رغم عدم الرد.

أتمنى الشفاء العاجل لمنتدانا وإلى اللقاء.

#9

السلام عليكم و رحمة الله

دعوة لجميع المشاركين بالانتقال

أدعوا جميع الأخوة و الأخوات بالانتقال الى منتدى شعاع نيت على أمل أن نجد ضالتنا فيه ....

هذه الدعوة موجهة للجميع ( مشاركين قدامى و حديثي العهد ) على أمل الانتقال و التسجيل بمنتدى شعاع نيت و طبعا بصدد هذا الوضع الحرج أود أن

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

أعتترف بأنني عرفت معنى كلمة - لغة برمجة - من هذا المنتدى بالذات و لا أنكر فضله علي و لكن هذه هي الحياة ان لم أفيد و أستفيد من أي شيء

فلماذا أحتفظ به !!!!!!

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

عندما جربت أن أسئل عن موضوع فكان الجواب مذهلا و سريعا مما رسخ لدي فكرة الانتقال للمشاركة بشعاع نيت ما دام الفريق العربي للبرمجة بصف

الاحتياط ( أو ربما الحكم طرده من الملعب )

- الأخ HGB :

المشكلة ليست بالمنتدى بل بالادارة الغير مهتمة لأنه مر على مشكلة المنتدى على ما أظن أكثر من شهر و هذا دليل واضح على أن الادارة غير

موجودة ..... أنا لا أقلل من شأنهم حاشى لله و لكن هذا هو الواقع المر

ملاحظة دعوة خاصة للأخوة .....

HGB

العصامية

فتى الشوتوكان

بنت اليمن

نجلة نشيطة

cold0zero

شكر خاص للأخوة الذين سجلوا بمنتدى شعاع نيت

chick

CompuM4n

abu_reem99

ملاحظة هامة : قد يعتقد البعض أنني من ادارة شعاع نيت أو لي هدف آخر ..... جوابي بسيط لمن يعتقد هذا الاعتقاد

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

و السلام خير ختام

مدونتي

http://mbnoimi.net

#10

السلام عليكم ...

تحية طيبة لكم جميعاً ...

اعتذر عن التأخير في الرد ،، و ذلك لصعوبة انزال المواضيع الى المنتدى (على امل ان تحل المشكلة في القريب العاجل ).. و كذلك لاني امر في فترة اخر الفصل الدراسي الاول ... يعني امتحانات و مشاريع فصلية و بحوث ... ( الى اخر القائمة الحزينة ) ..

الاخ PerfectStranger .. في الحقيقة ان عاملة ابرة مخدرة لموضوع Firewall بس خلال الاسبوعين المقبلين لإنشغالي في الجامعة ... لكن ان شاء الله لنا عودة لأن الموضوع اكثر من شيق و هو ضمن مشروع تخرجي ،،،

الاخ C&DEL اشكرك على الدعوة الكريمة و اتمنى لك التوفيق و كذلك لمنتدى شعاع ...

الاخ HGB ارجوا لك و لكل طالب التوفيق و التفوق ان شاء الله ...

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

بنت اليمن ...

لا اله الا الله .. محمد رسول الله

(* ربِ اجعلني مقيم الصلاة و من ذريتي ، ربنا و تقبل دعـاء *)

يا حيّ يا قيـوم ... برحمتك استغيث ... اصلح لي شأني كله و لا تكلني الى نفسي طرفة عين

#11

اسف للتداخل معكم فى المنتدى للمره الثالثه ولكن مواضيعكم شيقه وقويه واعضاء نشيطين و مشرف جيد (يبدو اننى ثرثار)

بنت اليمن(معذره لعدم استخدامى القاب خلينا بالبلدى) اود ان اوضح نقاط هامه كمبرمج vb ربما تفيدكم او على الاقل كمعلومات عامه

1- برمجه تطبيقات الشبكات(وليست برمجه الشبكات فنحن لانبنى بروتوكولات او نظام شبكى بل تطبيقات) تعتمد بالدرجه الاولى على المعرفه باساسيات الشبكات networking foundation او networking essentials

2-مبرمجى الفيجوال بيسك لديهم طريقتان لا ثالث لهم للتعامل مع الشبكات الاولى هى استخدام اداه التحكم winsock.ocx المعدله الاداه بسيطه وسهله الاستخدام ولكنها لا تتحمل نقل بيانات كثيره مما ينقلنا للطريقه الثانيه دوال ال api وهىعلى الرغم من طول كتابة الكود فيها إلا انها تميز بتحكم افضل ومميزات اكثر من اداه التحكم

3-مايكروسوفت تفضل الc++ طبعاً لهذا النوع من البرمجه مع عدم النظر لمبرمجى البيسك(عندهم حق) هذا ما رايته فى اجمل كتاب لبرمجه تطبيقات الشبكات الكتاب اسمه windows 2000 server side programming طبعاً يوجد فصل واحد فقط يتكلم عن ال winsock control لمبرمجى البيسك اما باقى فصول الكتاب فهى لل c++

4-بالرغم من هذا فمبرمجى الفيجوال بيسك يتبارون فيما بينهم لإظهار قدرتهم على استخدام الادوات المتاحه بمهاره عاليه

هل تصدقون ان احد المبرمجين كتب firewall بسيط بالفيجوال بيسك ايضاً المثال الجميل الذى وضعته بنت اليمن

ما اود قوله فى النهايه لجميع المبرمجين :1-اطلع على مبادئ الشبكات قبل الخوض فى غمار برمجه تطبيقاتها

2-كتابان لا غنى عنهم Windows Architecture for developers و كتاب windows 2000 server side programming

3- لماذا نهمل موقع الشركه صاحبه منصه التطوير و ادوات التطوير جربوا البحث عن كلمه winsock فى مكتبه ال msdn

4- مواقع الاكواد المجانيه :الاكواد المجانيه للتعلم منها

5- المنتديات الاجنبيه فقد ظهرت قبل نشاة المنتديات العربيه وطبعاً كنز من المعلومات

firewall.zip

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#12

السلام عليكم

أخي طارق شكرا على المشاركة . المثال الذي أرفقته جميل لكنه لا يسمى FireWall لأن هذا البرنامج قادر فقط على معرفة المنافذ المفتوحة و التأكد من أنها ليست منافذ معروفة لبعض التروجنات و لكن ليس له القدرة على التحكم بما بجري على الشبكة مممم يعني ReadOnly و كل ما يستطيع عمله هذا البرنامج استطعنا بتوفيق الله و همة الإخوة عمله في هذا الموضوع

لتعرف قصدي يا أخي تأمل برنامج Norton personal firewall مثلا تجد أن هذا البرنامج لن يسمح لك بالقيام بأي مشروع اتصال إلا باذنه أي عن طريقه كما هو قادر على اغلاق أي منفذ مستمع أو متصل كما وأنه جدار فعلي بينك والوسط الخارجي

إذا استطعنا عمل ذلك فالخطوة التالية هو وضع هذا ال FireWall على server or workstation و جعله يقوم بالمهمات السابقة لحماية كل الحواسيب المتصلة بة من أي اتصال خارجي غير مرغوب

السلام عليكم

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

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