方法一: 已经证实能用的.
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Text;
- using System.Windows.Forms;
- using System.Net;
- using System.Net.NetworkInformation;
- namespace PingIpAddress
- {
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- }
- private void Form1_Load(object sender, EventArgs e)
- {
- }
- private Ping pingSender = new Ping();
- private string strIP = "";
- private void button1_Click(object sender, EventArgs e)
- {
- strIP = txtIP.Text; //要ping的IP地址 第一种方法本人亲自试验过。可以使用
- PingOptions pingOption = new PingOptions();
- pingOption.DontFragment = true;
- string data = "sendData:goodgoodgoodgoodgoodgood";
- byte[] buffer = Encoding.ASCII.GetBytes(data);
- int timeout = 120;
- PingReply reply = pingSender.Send(strIP, timeout, buffer);
- if (reply.Status == IPStatus.Success)
- {
- MessageBox.Show("能ping通 ");
- }
- else
- {
- MessageBox.Show("ping不通");
- }
- }
- }
- }
第二种方法: 没试过
- C#判断网络状态
- 代码
- /// <summary>
- /// 是否能 Ping 通指定的主机
- /// </summary>
- /// <param name="ip">ip 地址或主机名或域名</param>
- /// <returns>true 通,false 不通</returns>
- public bool Ping(string ip)
- {
- int timeout = 1000;
- string data = "Test Data!";
- System.Net.NetworkInformation.Ping p = new System.Net.NetworkInformation.Ping();
- System.Net.NetworkInformation.PingOptions options = new System.Net.NetworkInformation.PingOptions();
- options.DontFragment = true; byte[] buffer = Encoding.ASCII.GetBytes(data);
- System.Net.NetworkInformation.PingReply reply = p.Send(ip, timeout, buffer, options);
- if (reply.Status == System.Net.NetworkInformation.IPStatus.Success) return true; else return false;
- }