December 03, 2011

Ping and find your IP address

เมื่อหลายวันก่อนผู้เขียนประสบปัญหาบางอย่าง จึงเกิดแรงบันดาลใจในการเขียนโปรแกรม Ping IP Address ขึ้นมา เนื่องจากที่บ้านนั้นมี Router Wireless ใช้เพียงแค่เครื่องเดียวและกระจายสัญญาณไปทั่วบ้าน ปัญหาอยู่ตรงที่คนที่ใช้เน็ตคนสุดท้ายจะต้องมาปิดสวิตซ์เจ้าตัว Router นี้ แต่เนื่องจากเล่นคอมกันอยู่คนละห้อง แล้วจะรู้ได้อย่างไรว่าคนอื่นเลิกเล่นกันหมดแล้ว ดังนั้นโปรแกรมนี้จะช่วยทำการ ping IP Address ทุกเครื่องที่อยู่ในบ้าน ว่าคอมเครื่องไหนมีการเชื่อมต่อระบบเน็ตเวิร์คอยู่ ก็จะส่ง Feedback กลับมาบอกเรา เพียงแค่นี้ก็จะทำให้รู้แล้วว่า ขณะนั้นมีใครใช้อินเตอร์เน็ตอยู่บ้าง
ส่วนหัวของโปรแกรมหรือ namespace ที่จำเป็น :
using System.Net;
using System.Net.NetworkInformation;
Method สำหรับ Ping IP ว่าสำเร็จหรือไม่ :
private bool Pinging()
{
    Ping ping = new Ping();
    PingReply pingreply = ping.Send("192.168.1.100"); 
    //instead "192.168.1.100" with your IP Address

    if (pingreply.Status == IPStatus.Success) return true;
    else return false;
}
Method สำหรับ Ping IP แล้วรับ Feedback กลับมาด้วย :
private void Pinging()
{
  try
  {
      string feedback;
      Ping ping = new Ping();
      PingReply pingreply = ping.Send("192.168.1.100"); 
      //instead "192.168.1.100" with your IP Address

      feedback = "Address: " + pingreply.Address + "\r";
      feedback += "Roundtrip Time: " + pingreply.RoundtripTime + "\r";
      feedback += "TTL (Time To Live): " + pingreply.Options.Ttl + "\r";
      feedback += "Buffer Size: " + pingreply.Buffer.Length.ToString() + "\r";
      MessageBox.Show(feedback);
  }
  catch (Exception err)
  {

  }
}
Method สำหรับเช็ค IP Address ของเครื่องเราเอง :
private void GetIP()
{
    string myHost = Dns.GetHostName();
    string myIP = Dns.GetHostEntry(myHost).AddressList[0].ToString(); ;
    MessageBox.Show(myIP);
}
See more :
http://msdn.microsoft.com/en-us/library/system.net.networkinformation.ping.aspx
http://www.aspnettutorials.com/tutorials/network/net-ping-aspnet2-csharp.aspx
http://www.geekpedia.com/tutorial149_Get-the-IP-address-in-a-Windows-application.html

No comments:

Post a Comment