السلام عليكــم ورحمـة الله وبركاتــه ،،
اريد كتابة برنامج يظهر لي ال ports المفتوحة على الحاسبة مع اسم ال process التي تستخدم هذا ال port .
ممكن مساعدة ممن لديه معلومات ،،
السلام عليكــم ورحمـة الله وبركاتــه ،،
اريد كتابة برنامج يظهر لي ال ports المفتوحة على الحاسبة مع اسم ال process التي تستخدم هذا ال port .
ممكن مساعدة ممن لديه معلومات ،،
اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ
لا يوجد من لديه معلومات؟
انا اريد ان اعرف هل هناك دالة جاهزة مثلا GetOpenPorts ، حتى لو كانت دالة API و سأستخدمها داخل السي # ،
ام لا توجد دالة جاهزة و سأظطر لعمل الامر بشكل يدوي ، انفذ port scanner على حاسبتي
اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ
بنظرة أولى : الإستفادة من 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
مشكور اخي على الرد ،،
نفذت الكود وظهرت نتائج تنفيذ ال netstat ،، الامر بحاجة الى ترتيب و فصل المعلومات عن بعض.
يبقى لبسؤال الا توجد طريقة من داخل السي# لتنفيذ الامر دون الاستعانة ببرنامج خارجي؟
اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ
السلام عليكــم ورحمـة الله وبركاتــه ،،
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
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…