标签:
1.Ping命令基础知识
在网络中Ping 命令是一个十分好用的TCP/IP工具,它主要的功能是用来检测网络的连通情况和分析网络速度。我们可以用ping来给网络上指定IP的计算机发送一个数据包,而对方就要返回一个同样大小的数据包,根据返回的数据包就可以判定对方机器的存在。
在命令提示符中输入Ping /?,可以看到ping的所有参数:
ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [-j computer-list] | [-k computer-list] [-w timeout] destination-list
-t Ping 指定的计算机直到中断。
-a 将地址解析为计算机名。
-n count 发送 count 指定的 ECHO 数据包数。默认值为 4。
-l length 发送包含由 length 指定的数据量的 ECHO 数据包。默认为 32 字节;最大值是65,527。
-f 在数据包中发送"不要分段"标志。数据包就不会被路由上的网关分段。
-i ttl 将"生存时间"字段设置为 ttl 指定的值。
-v tos 将"服务类型"字段设置为 tos 指定的值。
-r count 在"记录路由"字段中记录传出和返回数据包的路由。count 可以指定最少 1 台,最多 9 台计算机。
-s count 指定 count 指定的跃点数的时间戳。
-j computer-list 利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。
-k computer-list 利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。
-w timeout 指定超时间隔,单位为毫秒。
TTL是数据包从去到返回的所生存的时间.而根据LLT后面的数字我们还可以判断对方的操作系统 。
如果得到如上图的请求失败结果,首先检查网络设备是否正常,其次检查下本地连接里的DNS地址是否填写以及是否正确,以及检查下网线是否通畅、网线插口是否正确、若ping的是对方机器的IP就需要考虑下是否被对方的防火墙阻止掉。但仍然能得到ip,还有个更专业的命令就是“nslookup”。
2.向目标计算机发送Ping命令的实现
使用System.Net.NetworkInformation命名空间下的Ping类可以向指定计算机发送ICMP报文,发送完成后会返回一个PingReply对象实例该对象包含远程计算机回应的信息。
private async void btnPing_Click(object sender, EventArgs e) { if (txtHost.Text == "") return; System.Net.NetworkInformation.Ping ping = new System.Net.NetworkInformation.Ping(); // 向远程主机发送Ping命令 btnPing.Enabled = false; System.Net.NetworkInformation.PingReply reply = await ping.SendPingAsync(txtHost.Text); btnPing.Enabled = true; // 显示结果 if (reply != null) { string res = string.Format("目标主机IP:{0}\r\n状态:{1}\r\nTTL:{2}\r\n缓冲区大小:{3}", reply.Address.ToString(), reply.Status, reply.Options.Ttl, reply.Buffer.Length); txtResult.Text = res; }
标签:
原文地址:http://www.cnblogs.com/czx1/p/4890722.html