چگونه در سی شارپ عمل پینگ کردن (Ping) رو انجام بدهیم ؟
یکی از دستورات مهم در ویندوز جهت تست شبکه میباشد. به عبارت دیگر عملکرد پینگ به این صورت است که پیامیاز سیستم شما به مقصد مورد نظر ارسال میکند، در صورت ارسال موفق، سیستم مقصد هم همان پیام را پاسخ میدهد.
این دستور زمان طی شده بین ارسال و دریافت پیام را هم نشان میدهد، که هرقدر این زمان کم باشد ارتباط بهتر و سریعتر در دسترس هست.
در چه مواقعی از دستور Ping استفاده می کنیم؟
- چند سیستم را با هم شبکه کردید و به آنها ip دادید با پینگ کردن هر ip از عملکرد و صحت کارکرد شبکه اطمینان حاصل کنید
- به اینترنت دسترسی ندارید ابتدا iP مودم و یا سرور را پینگ میکنیم در صورت پاسخ صحیح ip و یا آدرس سایت اینترنتی را پینگ میکنیم مانند ping google.com
- میخواهیم از روشن و یا خاموش بودن یک سیستم درشبکه اطلاع پیداکنیم
- دستگاه تحت شبکه ای را متصل کرده این مانند تلوزیون ، پلی استیشن گوشی و … با پینگ از اتصال و ارتباط اطمینان حاصل میکنیم
- میخواهیم با سیستم دیگری فایل جابجا کنیم و یا از پرینتر اشتراکی که همیشه استفاده میکردیم استفاده کنید درصورت عدم موفقیت با دستور پینگ ارتباط را چک میکنیم
برای استفاده از دستور Ping باید Command Prompt را اجرا کنیم و بعد دستور را به شکل زیر وارد کنیم :
Ping نام سایت Ping softsaaz.ir Ping شماره آی پی Ping 192.168.1.1
نتیجه دستور Ping:
اگر ارسال و دریافت موفق باشد :
پیغام Reply from 192.168.1.1: bytes=32 time
اگر ارسال و دریافت موفق نباشد :
پیغام Request timed out نمایش داده می شود.
حالا بریم سراغ کد نویسی سی شارپ:
در پلت فرم دات نت کلاس Ping در فضای نام System.Net.NetworkInformation قرار گرفته است. قبل از هر کاری این فضای نام رو به پروژه مون اضافه می کنیم :
using System.Net.NetworkInformation;
کلاس Ping واقع در فضای نام مذکور برای عملیات پینگ کردن، متد ()Send را فراهم کرده است. این تابع دو تا ورودی می گیرد یکی آدرس (سایت یا آی پی) و پارامتر بعدی مهلت زمانی (timeout ) می باشد.
قبل از هر کاری نمونه ایی از کلاس Ping می سازیم:
Ping ping = new Ping();
حالا دو تا پارامتر و رو داخل متغییر می ریزیم :
string hostname = "www.bing.com"; int timeout = 10000;
خط اول میتونه آدرس سایت یا آی پی ( سایت یا شبکه و …) باشد.
خط دوم انقضای زمانی ارسال و زمان منتظر بودن برای پاسخگویی می باشد.
حالا نوبت به استفاده از متد Send می باشد که این متد خروجیش از نوع PingReply می باشد و باید متغییری از این نوع ایجاد کنیم:
PingReply pingreply = ping.Send(hostname, timeout);
با استفاده از پراپرتی Status در همین کلاس PingReply می توان نتیجه عملیات را بدانیم :
if (pingreply.Status == IPStatus.Success)
در صورت اتصال موفق ،می توانیم اطلاعات لازم را نمایش دهیم :
pingreply.Address pingreply.Status pingreply.RoundtripTime
- اولی آدرس ip رو نمایش می دهد.
- دومی نتیجه عملیات پینگ کردن رو نشون می دهد.
- سومی مدت زمان تبادل اطلاعات را به ما می دهد.
یک پروژه Console ایجاد می کنیم و کدها رو به صورت زیر به کار می بریم:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net.NetworkInformation; namespace PingApplication { class Program { static void Main(string[] args) { string hostname = "www.bing.com"; int timeout = 10000; Ping ping = new Ping(); try { PingReply pingreply = ping.Send(hostname, timeout); if (pingreply.Status == IPStatus.Success) { Console.WriteLine("Address: {0}", pingreply.Address); Console.WriteLine("status: {0}",pingreply.Status ); Console.WriteLine("Round trip time: {0}", pingreply.RoundtripTime); } } catch (PingException ex) { Console.WriteLine(ex); } Console.ReadKey(); } } }
برای مشاهده کلیه سورس های برنامه سی شارپ کلیک نمایید.
امتیاز به این مطلب :
امتیاز
جمع امتیازات
لطفا به این مطلب امتیاز دهید