/// <summary> /// 利用Ping方法确定是否可以通过网络访问远程计算机 /// </summary> /// <param name="status">网络状态</param> /// <param name="ipAddressOrHostName">默认是www.baidu.com</param> /// <param name="timeout">默认是1000毫秒</param> /// <returns></returns> public static bool PingIsConnectedInternet(out System.Net.NetworkInformation.IPStatus status, string ipAddressOrHostName = "www.baidu.com", int timeout = 1000) { System.Net.NetworkInformation.Ping p = new System.Net.NetworkInformation.Ping(); System.Net.NetworkInformation.PingOptions options = new System.Net.NetworkInformation.PingOptions(); options.DontFragment = true; string data = "aa"; byte[] buffer = Encoding.ASCII.GetBytes(data); //Wait seconds for a reply. status = System.Net.NetworkInformation.IPStatus.Unknown; try { System.Net.NetworkInformation.PingReply reply = p.Send(ipAddressOrHostName, timeout, buffer, options); status = reply.Status; if (status == System.Net.NetworkInformation.IPStatus.Success) { return(true); } else { return(false); } } catch { return(false); } }
/// <summary> /// Sends packets to host with itteration count /// </summary> /// <param name="host"></param> /// <param name="itterations"></param> /// <returns></returns> public void Send(string host, int itterations = 4) { for (int i = 0; i < itterations; i++) { this._pr = this._p.Send(host); this._pingStatus = this._pr.Status; if (this._pingStatus == System.Net.NetworkInformation.IPStatus.Success) { this._lastPingTime = this._pr.RoundtripTime; this._totalPingTime += this._lastPingTime; var d = new Dictionary <string, long>(); d.Add("LastPingTime", this._lastPingTime); d.Add("TotalPingTime", this._totalPingTime); this._allPingTimes.Add(d); this._allStatuses.Add(this._pingStatus); } else { throw new System.Net.NetworkInformation.PingException(host + " could not be reached!"); } } }
private bool pingServer(string rmrsDir) { bool up = true; System.Net.NetworkInformation.Ping png = new System.Net.NetworkInformation.Ping(); System.Net.NetworkInformation.PingReply rp = png.Send(rmrsDir, 120); System.Net.NetworkInformation.IPStatus ipStat = rp.Status; if (ipStat != System.Net.NetworkInformation.IPStatus.Success) { up = false; } return(up); }
/// <summary> /// Ping远程IP /// </summary> /// <param name="szAddress"></param> /// <returns></returns> public static bool Ping(string szAddress) { System.Net.NetworkInformation.Ping tmpPing = new System.Net.NetworkInformation.Ping(); System.Net.NetworkInformation.IPStatus pr = tmpPing.Send(szAddress, 1000).Status; if (pr == System.Net.NetworkInformation.IPStatus.Success) { return(true); } else { return(false); } }
static bool pingURL(string URL) { Uri url = new Uri(URL); string pingurl = string.Format("{0}", url.Host); string host = pingurl; bool result = false; var IPStatus = new System.Net.NetworkInformation.IPStatus(); var p = new System.Net.NetworkInformation.Ping(); try { var reply = p.Send(host, 3000); if (reply.Status == IPStatus) return true; } catch { } return result; }
static bool pingURL(string URL) { Uri url = new Uri(URL); string pingurl = string.Format("{0}", url.Host); string host = pingurl; bool result = false; var IPStatus = new System.Net.NetworkInformation.IPStatus(); var p = new System.Net.NetworkInformation.Ping(); try { var reply = p.Send(host, 3000); if (reply.Status == IPStatus) { return(true); } } catch { } return(result); }
public PingInfo(string address, int time, System.Net.NetworkInformation.IPStatus result) { this.address = address; this.time = time; this.result = result; }
void _tracer_OnHopFail(IPRouteTracer tracer, int hop, int retry, IPAddress address, System.Net.NetworkInformation.IPStatus status) { if (InvokeRequired) { BeginInvoke(new IPRouteTracer.HopFailDelegate(_tracer_OnHopFail), tracer, hop, retry, address, status); return; } _lStatus.Text = "Status: Hop " + hop + " failed! Response from [" + address + "]: \"" + status.ToString() + "\". Retry: " + retry + "."; }
public void Service(bool sampleTimerTriggered, Logging.IBasicLogger logger) { if (currentUserToken != null) { TimeSpan currentElapsedTime = currentUserToken.sendTimeStamp.Age; if (pingCompleteEventArgs != null) { // process ping response if (!pingCompleteEventArgs.Cancelled && pingCompleteEventArgs.Error == null && pingCompleteEventArgs.Reply != null) { switch (pingIPStatus = pingCompleteEventArgs.Reply.Status) { case System.Net.NetworkInformation.IPStatus.Success: h.Add(pingToReplyElapsedTime.TotalSeconds); break; case System.Net.NetworkInformation.IPStatus.TimedOut: timeoutCount++; timeoutCountGPI.VC = new ValueContainer(timeoutCount); break; default: failureCount++; failureCountGPI.VC = new ValueContainer(failureCount); break; } } else { pingIPStatus = System.Net.NetworkInformation.IPStatus.Unknown; failureCount++; failureCountGPI.VC = new ValueContainer(failureCount); } ReleaseToken(); } else if (currentElapsedTime >= responseWaitTimeLimit) { pingIPStatus = System.Net.NetworkInformation.IPStatus.Unknown; failureCount++; failureCountGPI.VC = new ValueContainer(failureCount); AbortCurrentPingRequest(); } if (lastPingIPStatus != pingIPStatus) { if (pingIPStatus != System.Net.NetworkInformation.IPStatus.Success) { logger.Info.Emit("Ping to '{0}' [{1}] failed: {2} after {3:f6} sec", HostNameOrAddress, IPAddress, pingIPStatus, currentElapsedTime.TotalSeconds); } lastPingIPStatus = pingIPStatus; } } if (sampleTimerTriggered && (currentUserToken == null)) { SendNextPingRequest(logger); } }
private void OnRSUnityPingComplete_Listener(NetworkReachability networkReachability, System.Net.NetworkInformation.IPStatus ipStatus) { _toggleResult.isOn = ipStatus == System.Net.NetworkInformation.IPStatus.Success; _buttonPing.interactable = true; }