davood59
سه شنبه 13 فروردین 1392, 22:22 عصر
سلام دوستان؛
امیدوارم امروز به همه شما خوش گذشته باشه.
یک سؤال از خدمتتون داشتم؛
فرض کنید من شبکه ای متشکل از 100 کلاینت دارم.
IP این کلاینتها از 192.168.100.1 شروع و به 192.168.100.200 ختم میشه.
میخوام برنامه ای بنویسم که پس از ساعات اداری اونو اجرا کنم و ببینم چه اشخاصی کلاینت خودشون رو خاموش نکردن و یا بعبارتی روشن مونده.
منطق برنامه این رو میگه که یه حلقه For بدین شکل ایجاد کنم:
for (int j = 1; j <= 200; j++)
{
//in this part we should check Ip('s) in range 192.168.100.j to Find Up or Down Ip('s)
}
حالا در داخل این حلقه باید یک به یک کلاینتها رو چک کنم و اگه پاسخی فرستادن یا همون IPStatus.Success از نظر منطقی true بود روی صفحه به من نمایش بده. (بعنوان مثال بگه 10 تا کلاینت با IP های نمایش داده شده فعال هستند).
با جستجویی که کردم دو تا کد رو بهتر و ساده تر از بقیه تشخیص دادم.(از این لینک (http://stackoverflow.com/questions/12620915/in-c-sharp-verify-the-ping-utility))
کد نخست:
using System.Net.NetworkInformation;
var ping = new Ping();
var reply = ping.Send("10.38.2.73", 60 * 1000); // 1 minute time out (in ms)
if (reply.Status == IPStatus.Success)
{
Console.WriteLine("Server is up");
}
else
{
Console.WriteLine("Server is down");
}
کد دوم:
Ping pingSender = new Ping();
byte[] data = Encoding.ASCII.GetBytes("test");
int timeout = 100;
PingReply reply = pingSender.Send("127.0.0.1", timeout, data);
if (reply.Status == IPStatus.Success)
{
Console.WriteLine("Address: {0}", reply.Address.ToString());
Console.WriteLine("RoundTrip time: {0}", reply.RoundtripTime);
Console.WriteLine("Time to live: {0}", reply.Options.Ttl);
}
حالا از شما دو تا راهنمایی میخواستم؛
اولا اگه ممکنه به طور خلاصه نحوه کار کدهای بالا رو برام به اختصار شرح بدید! (اینکه هر دستور دقیقاً چه عملی انجام میده!)
دوماً؛ با استفاده از کدهای فوق و یا مشابه؛ به چه نحوی برنامه ای که مد نظرم هست رو اجرایی کنم؟
از شما ممنون و سپاسگزارم.
امیدوارم امروز به همه شما خوش گذشته باشه.
یک سؤال از خدمتتون داشتم؛
فرض کنید من شبکه ای متشکل از 100 کلاینت دارم.
IP این کلاینتها از 192.168.100.1 شروع و به 192.168.100.200 ختم میشه.
میخوام برنامه ای بنویسم که پس از ساعات اداری اونو اجرا کنم و ببینم چه اشخاصی کلاینت خودشون رو خاموش نکردن و یا بعبارتی روشن مونده.
منطق برنامه این رو میگه که یه حلقه For بدین شکل ایجاد کنم:
for (int j = 1; j <= 200; j++)
{
//in this part we should check Ip('s) in range 192.168.100.j to Find Up or Down Ip('s)
}
حالا در داخل این حلقه باید یک به یک کلاینتها رو چک کنم و اگه پاسخی فرستادن یا همون IPStatus.Success از نظر منطقی true بود روی صفحه به من نمایش بده. (بعنوان مثال بگه 10 تا کلاینت با IP های نمایش داده شده فعال هستند).
با جستجویی که کردم دو تا کد رو بهتر و ساده تر از بقیه تشخیص دادم.(از این لینک (http://stackoverflow.com/questions/12620915/in-c-sharp-verify-the-ping-utility))
کد نخست:
using System.Net.NetworkInformation;
var ping = new Ping();
var reply = ping.Send("10.38.2.73", 60 * 1000); // 1 minute time out (in ms)
if (reply.Status == IPStatus.Success)
{
Console.WriteLine("Server is up");
}
else
{
Console.WriteLine("Server is down");
}
کد دوم:
Ping pingSender = new Ping();
byte[] data = Encoding.ASCII.GetBytes("test");
int timeout = 100;
PingReply reply = pingSender.Send("127.0.0.1", timeout, data);
if (reply.Status == IPStatus.Success)
{
Console.WriteLine("Address: {0}", reply.Address.ToString());
Console.WriteLine("RoundTrip time: {0}", reply.RoundtripTime);
Console.WriteLine("Time to live: {0}", reply.Options.Ttl);
}
حالا از شما دو تا راهنمایی میخواستم؛
اولا اگه ممکنه به طور خلاصه نحوه کار کدهای بالا رو برام به اختصار شرح بدید! (اینکه هر دستور دقیقاً چه عملی انجام میده!)
دوماً؛ با استفاده از کدهای فوق و یا مشابه؛ به چه نحوی برنامه ای که مد نظرم هست رو اجرایی کنم؟
از شما ممنون و سپاسگزارم.