PDA

View Full Version : بدست آوردن نام تمام کامپیوترها در یک شبکه محلی



jeeveh2000
یک شنبه 25 آذر 1386, 12:01 عصر
سلام خدمت همه دوستان

در یک برنامه C# چطوری میشه نام تمامی کامپیوترهایی را که با هم Lan هستند به دست آورد برای روشن تر شدن سوالم یک مثال می زنم:
فرض کنید کامپیوترهای A,B,C باهم شبکه شده اند حالا هدف نوشتن برنامه ای که مثلا وقتی در کامپیوتر A اجرا شد لیست کامپیوترهایی را که با A شبکه هستند را بده بنابراین خروجی ما بایستی نام های دوکامپیوتر B,C باشه.
از راهنمایی هاتون ممنون می شم:قلب:

mr_moghimkhani
یک شنبه 25 آذر 1386, 14:23 عصر
این مقاله رو بخون اگه کمکت نکرد بگو تا اطلاعات دیگه ای رو برات بگذارم:
http://www.codeproject.com/KB/applications/NetSendPlus.aspx?print=true

reza_rad
یک شنبه 25 آذر 1386, 15:19 عصر
از دستور net view می تونی استفاده کنی تا تمام کامپیوترهایی که الان در شبکه هستند رو ببینی.

http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/net_view.mspx?mfr=true

dr_csharp
یک شنبه 25 آذر 1386, 15:32 عصر
همونطور که دوستمون Behzad_Rad گفتن ، شما با استفاده از دستور net view میتونی نام کامپیوترهای موجود در شبکه رو ببینی .. ضمنا برای بدست آوردن IP اونها میتونی دستور ping [computerName رو بکار ببری ( ComputerName قبلا با استفاده از دستور net view بدست اومده )

jeeveh2000
یک شنبه 02 دی 1386, 18:07 عصر
سلام

دوستان میشه بفرمایید که در کد C# چطور میشه این عمل(netview) را انجام داد
مرسی

hdv212
یک شنبه 02 دی 1386, 20:39 عصر
این یه نمونه کد هست که من قبلا برای همچین کاری نوشته بودم، حتی پنجره ی Command Promt رو هم نشون کاربر نمیده و از زیبایی کار کم نمیکنه، یه listBox و یه Button به برنامه ات اضافه کن و این کد رو توی رویداد Clicked دکمه ی مورد نشر بنویس :

// This code get list of clients directly from cmd.exe to listBox
System.Diagnostics.Process pr = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo pstart = new System.Diagnostics.ProcessStartInfo("cmd.exe");
pstart.CreateNoWindow = true;
//pstart.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
pstart.UseShellExecute = false;
pstart.RedirectStandardOutput = true;
pstart.RedirectStandardInput = true;
pr.StartInfo = pstart;
pr.Start();
System.IO.StreamReader reader = pr.StandardOutput;
System.IO.StreamWriter writer = pr.StandardInput;
writer.WriteLine("net view");
writer.Close();

this.listBox1.Items.Clear();
while (!reader.EndOfStream)
{
string line = reader.ReadLine();
if (line.StartsWith("\\"))
{
line = line.Replace("\\", "");
this.listBox1.Items.Add(line);
}
}
pr.WaitForExit();
pr.Close();

reza_rad
دوشنبه 03 دی 1386, 08:14 صبح
همونطور که دوستمون Behzad_Rad گفتن ،
امان از این تشابه اسمی! ;-)