
This is how you ping a Server/IP asynchronously. Meaning you can ping multiple hosts at once or on multiple threads as this command suggests. I've incorporated this into my code for my NetPinger 2010 Application available in Beta at the end at June 2010.
private void SendPing()
{
try
{
this.treePing.SelectedNode.ForeColor =
Color.OrangeRed;
}
catch (Exception ex)
{
mnuNotify.ShowBalloonTip(5000,
"NetPinger 2010",
ex.Message,
ToolTipIcon.Error); private void SendPing()
{
try
{
this.treePing.SelectedNode.ForeColor =
Color.OrangeRed;
}
catch (Exception ex)
{
mnuNotify.ShowBalloonTip(5000,
"NetPinger 2010",
ex.Message,
ToolTipIcon.Error);
toolStripStatusLabel1.Text = ex.Message;
}
pingSender = new System.Net.NetworkInformation.Ping();
pingSender.SendAsyncCancel();
// Create an event handler for ping complete
pingSender.PingCompleted += new PingCompletedEventHandler(pingSender_Complete);
// Create a buffer of 32 bytes of data to be transmitted.
byte[] packetData = Encoding.ASCII.GetBytes("................................");
// Jump though 50 routing nodes tops, and don't fragment the packet
PingOptions packetOptions = new PingOptions(50, true);
// Send the ping asynchronously
this.lblServer.Text = thisServer;
this.lblDomain.Text = thisFQDN;
this.lblDevice.Text = thisDtype;
string sendThis = thisIP;
pingSender.SendAsync(thisIP, 2000, packetData, packetOptions, resetEvent);
}
toolStripStatusLabel1.Text = ex.Message;
}
pingSender = new System.Net.NetworkInformation.Ping();
pingSender.SendAsyncCancel();
// Create an event handler for ping complete
pingSender.PingCompleted += new PingCompletedEventHandler(pingSender_Complete);
// Create a buffer of 32 bytes of data to be transmitted.
byte[] packetData = Encoding.ASCII.GetBytes("................................");
// Jump though 50 routing nodes tops, and don't fragment the packet
PingOptions packetOptions = new PingOptions(50, true);
// Send the ping asynchronously
this.lblServer.Text = thisServer;
this.lblDomain.Text = thisFQDN;
this.lblDevice.Text = thisDtype;
string sendThis = thisIP;
pingSender.SendAsync(thisIP, 2000, packetData, packetOptions, resetEvent);
}
public void ShowPingResults(PingReply pingResponse,
string temp1)
{
if (pingResponse == null)
{
// We got no response
txtPing.Text += "There was no response.\r\n\r\n";
if (this.lblIP.Text == "")
{
try
{
this.treePing.SelectedNode.ToolTipText =
"";
this.treePing.SelectedNode.ForeColor =
Color.OrangeRed;
}
catch
{
}
this.lblMachine.Text = "";
toolStripStatusLabel1.Text = "Error no response...";
picPing.Image =
NetPinger.Properties.Resources.off1;
lblPing.Text = "Dead";
lblPing.ForeColor = Color.OrangeRed;
}
if (this.lblIP.Text == "0.0.0.0")
{
this.treePing.SelectedNode.ForeColor =
Color.OrangeRed;
this.lblMachine.Text = "";
toolStripStatusLabel1.Text = "Error no response...";
picPing.Image =
NetPinger.Properties.Resources.off1;
lblPing.Text = "Dead";
lblPing.ForeColor = Color.OrangeRed;
}
return;
}
else if (pingResponse.Status == IPStatus.Success)
{
if (this.lblIP.Text != "0.0.0.0")
{
this.treePing.SelectedNode.ForeColor =
Color.LawnGreen;
// We got a response, let's see the statistics
txtPing.Text += "Reply from " + pingResponse.Address.ToString() + ": bytes=" + pingResponse.Buffer.Length + " time=" + pingResponse.RoundtripTime + " TTL=" + pingResponse.Options.Ttl + "\r\n";
lblPing.Text = "Alive";
string Addy = pingResponse.Address.ToString();
lblIP.Text =
Addy;
// treePing.SelectedNode.ToolTipText =
// lblIP.Text;
lblPing.ForeColor = Color.LawnGreen;
//lblServer.Text = "loading...";
lblIP.Text =
Addy;
picPing.Image = NetPinger.Properties.Resources.On1;
//this.lblServer.Text = "loading...";
this.lblServer.Text = thisServer;
this.lblDomain.Text = thisFQDN;
this.lblDevice.Text = thisDtype;
this.treePing.SelectedNode.ForeColor =
Color.LawnGreen;
try
{
System.Net.IPAddress ip =
System.Net.IPAddress.Parse(this.lblIP.Text);
this.lblMachine.Text = GetMacFromIP(ip).ToString();
this.treePing.SelectedNode.ForeColor =
Color.LawnGreen;
}
catch
{
}
}
}
else
{
//MessageBox.Show(lblIP.Text);
if ((lblIP.Text == "0.0.0.0") && (lblPing.Text != ""))
{
if (lblPing.Text != "Alive")
{
//this.lblServer.Text = "loading...";
toolStripStatusLabel1.Text = "Error no response...";
picPing.Image =
NetPinger.Properties.Resources.off1;
lblPing.Text = "Dead";
lblPing.ForeColor = Color.OrangeRed;
// The packet didn't get back as expected, explain why
txtPing.Text += "Ping was unsuccessful! " + "\r\n\r\n";
}
}
}
}
No comments:
Post a Comment