C#Ping命令【因特网控制消息协议ICMP】
ICMP协议
ICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
ICMP协议是一种面向无连接的协议,用于传输出错报告控制信息。它是一个非常重要的协议,它对于网络安全具有极其重要的意义。 [3] 它属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。
ICMP 是个非常有用的协议﹐尤其是当我们要对网路连接状况进行判断的时候。
C#中使用Ping与PingReply类进行测试网络连接是否正常。
C#测试程序:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.NetworkInformation;
using System.Text;
using System.Threading.Tasks;namespace PingDemo
{class Program{static void Main(string[] args){Console.WriteLine("------------因特网控制消息协议(ICMP)用于判断网路连接状况------------");string ipAddress = "192.168.43.1";Ping ping = new Ping();try{PingReply pingReply = ping.Send(ipAddress);if (pingReply == null){Console.WriteLine($"与网络【{ipAddress}】通信失败,本机尝试连接,但返回空值");}else if (pingReply.Status == IPStatus.Success){Console.WriteLine("Ping命令成功,网络是通的");Console.WriteLine($"IP地址:【{pingReply.Address}】");Console.WriteLine($"接收到回复消息花费毫秒数:{pingReply.RoundtripTime}");Console.WriteLine($"TTL:【{pingReply.Options.Ttl}】,DontFragment:【{pingReply.Options.DontFragment}】");Console.WriteLine($"缓冲区数据长度【{pingReply.Buffer.Length}】:【{string.Join(",", pingReply.Buffer)}】");Console.WriteLine(Encoding.ASCII.GetString(pingReply.Buffer));}else{Console.WriteLine($"与网络【{ipAddress}】通信失败,请检查网络!状态:{pingReply.Status}");}}catch (Exception ex){Console.WriteLine($"Ping命令出现异常:【{ex.Message}】.\n异常类型:【{ex.GetType()}】");}Console.ReadLine();}}
}
运行效果:
C#Ping命令【因特网控制消息协议ICMP】相关推荐
- 禁止服务器的协议,电脑怎么阻止Internet控制消息协议ICMP?
电脑完全阻止ICMP绝不是一个好主意,因为它是一个非常有用的协议.ping请求(回显)和超时数据包(由traceroute请求返回)等故障排除工具最好不要单独使用,否则解决简单的网络问题将是未来的噩梦 ...
- 因特网控制报文协议ICMP
ICMP是TCP/IP协议族的一个IP层子协议,用于在IP主机.路由器之间传递控制消息.控制消息是指网络通不通.主机是否可达.路由是否可用等网络本身的消息.这些控制消息虽然并不传输用户数据,但是对于用 ...
- 互联网协议 — ICMP 互联网控制消息协议
目录 文章目录 目录 ICMP ICMPv4 协议栈 ICMPv4 的消息类型 Echo Request & Echo Reply Msg Destination Unreachable Ms ...
- ICMP (互联网控制消息协议 )是什么
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 互联网控制消息协议(英语:Internet Control Message Protocol,缩写: ...
- 网际控制报文协议icmp_网络中的ICMP(Internet控制消息协议)
网际控制报文协议icmp ICMP(Internet控制消息协议)简介 (Introduction to ICMP (Internet Control Message Protocol)) IP (I ...
- Internet控制报文协议ICMP
我们知道,互联网的网络层提供的是"best effort"尽力而为的服务,IP协议本身并没有任何可以帮助发方测试连接性能或者了解线路故障的机制.但是对于故障和错误的处理,是必不可少 ...
- 【计算机网络】湖科大微课堂笔记 p54-56 IPv4数据报的首部格式、网际控制报文协议ICMP、虚拟专用网VPN与网络地址转换NAT
文章目录 IPv4数据报的首部格式 小结 一些例题 网际控制报文协议ICMP 小结 一些例题 虚拟专用网VPN与网络地址转换NAT 小结 IPv4数据报的首部格式 版本 首部长度.可选字段.填充字段 ...
- 计算机网络 网际控制报文协议 ICMP
介绍 为了更有效地转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议 ICMP(Internet Control Message Protocol) ICMP是互联网的标准协议 ICM ...
- 网际控制报文协议ICMP的应用——traceroute
为了更有效地转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议ICMP(Internet Control Message Protocol). ICMP的应用举例 ICMP的一个重要应 ...
最新文章
- 使用C语言扩展Python(三)
- 提问与回答:全国大学生智能汽车竞赛的第十五届的7月中旬问答
- intellij idea的TFS拉取项目文件不完全、文件误删恢复、TFS忽略文件解决方法
- 使用隐式Intent打开系统内置拨号界面
- ASP.NET中的数据绑定:哪个更快? (转)
- JDK 15中的确切绝对整数
- 九龙擒庄指标源码破译_擒庄系列:庄家难逃该指标,散户屡试不爽的秘籍!(附公式)...
- 安装openstack(pike版本)nova节点,yum安装报错分析
- Redis笔记 -- 链表和链表节点的API函数(三)
- Object对象的内存布局学习总结
- php四则运算器,php实现简单四则运算器
- java开发微信支付接口_JAVA微信支付接口开发——支付
- 缝隙天线简介[搬运]
- [HR面试] 65个最常见的面试问题与技巧性答复
- Android之传感器(三)方向传感器
- Word上次启动失败,安全模式可以希助您解决问题,但是部分功能在此模式下可能不可用
- 关于scite文本编辑器的说明
- InputStream读JSON数据时乱码
- 小鹿妹眼中的三亚。告诉你怎么玩三亚
- hit@k 评价指标
热门文章
- Import Error: from torchtext.data import to_map_style_dataset解决方案
- HDU 1863畅通工程(最小生成树)(prim算法)
- 计算两个坐标点之间的点的坐标
- 玫琳凯宣布可持续发展战略:美力永续 提出2030年全球目标
- WPF 设置窗体圆角
- 如何删除wrod中多余的空白页
- 轻薄本+高性能+超续航:全新荣耀MagicBook 14发布
- jdbc mysql设置rewriteBatchedStatements参数实现高性能批量处理 executeBatch返回值问题
- Apache详解,并发数设置
- WIN7桌面右键菜单不消失问题解决方法