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

كيف ممكن معرفة ال Ports المفتوحة على الحاسبة؟

بدأه الاخير زمانه في 11 يوليو 2009 · 4 رد · 2,243 مشاهدة · في برمجة الشبكات والتطبيقات الموزعة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

اريد كتابة برنامج يظهر لي ال ports المفتوحة على الحاسبة مع اسم ال process التي تستخدم هذا ال port .

ممكن مساعدة ممن لديه معلومات ،،

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#2

لا يوجد من لديه معلومات؟

انا اريد ان اعرف هل هناك دالة جاهزة مثلا GetOpenPorts ، حتى لو كانت دالة API و سأستخدمها داخل السي # ،

ام لا توجد دالة جاهزة و سأظطر لعمل الامر بشكل يدوي ، انفذ port scanner على حاسبتي

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#3

بنظرة أولى : الإستفادة من netstat :

   string sCommand = "netstat";
			string sArgs = "-o";
			System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(sCommand, sArgs);

			psi.UseShellExecute = false;
			psi.RedirectStandardOutput = true;

			System.Diagnostics.Process proc = null;
			proc = System.Diagnostics.Process.Start(psi);
			proc.WaitForExit(int.MaxValue);

			// Read the first 4 lines. They don't contain any information we need to get
			for (int i = 0; i < 4; i++)
				proc.StandardOutput.ReadLine();

			while (true)
			{
				string strLine = proc.StandardOutput.ReadLine();
				if (strLine == null)
					break;


			}

هذا ما خطر لي ................ و هي طريقة تحتاج لعمل إضافي كثيير ....

طبعاً لديك PID و تستطيع الحصول من خلاله على معلومات process (طبعاً تحتاج إلى الحصول عليه من strLine الذي تمت قراءته ) .....

"يتبع" :(

تم تعديل هذه المشاركة بواسطة م. حسام فيصل في 13 يوليو 2009 في 23:52

#4

مشكور اخي على الرد ،،

نفذت الكود وظهرت نتائج تنفيذ ال netstat ،، الامر بحاجة الى ترتيب و فصل المعلومات عن بعض.

يبقى لبسؤال الا توجد طريقة من داخل السي# لتنفيذ الامر دون الاستعانة ببرنامج خارجي؟

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#5

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

Socket

http://msdn.microsoft.com/en-us/library/sy...ets.socket.aspx

   string host;
        int port = 80;

        if (args.Length == 0)
            // If no server name is passed as argument to this program, 
            // use the current host name as the default.
            host = Dns.GetHostName();
        else
            host = args[0];

        string result = SocketSendReceive(host, port);

Console.WriteLine(result);

Connectionstate

http://msdn.microsoft.com/en-us/library/sy...ctionstate.aspx

......... Depends on your requirements

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…