ping命令和它的“亲友”们

article/2025/9/16 23:27:01

       前面在《kali主机发现背后的秘密》文章里,介绍了几个*ping的命令。ping可是“可人儿”。瞧,它们都来攀亲戚了,蹭热度来了。今天我们就来认识一下它们。

关系

名称

功能特点

备注

本宗

ping

网络诊断工具,测试互联网协议网络上主机的可达性

自带

fping

使用 ping类似,但在ping多个主机时性能要好得多

自带

tcping

网络禁ping时用它

需安装

表哥

arping

ping MAC 地址,以及找出那些 ip 地址被哪些电脑所用

自带

堂弟

hping3

用于生成和解析TCPIP协议数据包的开源工具,也是安全审计、防火墙测试等工作的标配工具 

自带

堂弟

nping

用于生成网络包、分析响应和测量响应时间的开源工具  

自带

                      ping命令及“亲友”们对比图                                  

一、ping

        Ping是一种计算机网络诊断工具,用于测试互联网协议网络上主机的可达性。它几乎适用于所有具有网络功能的操作系统,包括大多数嵌入式网络管理软件。

        Ping测量的是消息从源主机发送到目标计算机并返回到源主机的往返时间。这个名字源于主动声纳的术语,指的是通过发出声音脉冲,并听回声来探测水下物体。

        Ping通过向目标主机发送因特网信报控制协议(ICMP)回显请求数据包并等待ICMP回显回复来实现。该程序报告错误、数据包丢失和结果的统计摘要,通常包括往返时间的最小值、最大值、平均值以及平均值的标准差。

        ping诊断工具是迈克·穆斯1983年12月在弹道研究实验室(现为美国陆军研究实验室)任职期间写的。迈克·穆斯是将其作为一种诊断网络故障的工具而创建的,他的灵感来自大卫·米尔斯的关于使用ICMP回声数据包进行网络诊断和测量的讨论。应用详见 ping命令的“三板斧” 。

二、Fping

        fping是一个向网络主机发送ICMP回声探测的程序,与ping类似,但在ping多个主机时性能要好得多。fping有很长的历史:Roland Schemers在1992年发布了它的第一个版本,从那时起它就成为网络诊断和统计的标准工具。

命令选项

  • -a   显示存活的主机

  • -b   ping 数据包的大小。(默认为56)

  • -c   ping每个目标的次数 (默认为1)

  • -f   从文件获取目标列表(不能与 -g 同时使用)

  • -l   循环发送ping

  • -g   通过指定开始和结束地址来生成目标列表,可以用网段

  • -u   显示不可到达的目标

三、Arping

        ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。在同一以太网中,通过地址解析协议,源主机可以通过目的主机的IP地址获得目的主机的MAC地址。arping程序就是完成上述过程的程序。

        arping,用来向局域网内的其它主机发送ARP请求的指令,它可以用来测试局域网内的某个IP是否已被使用。 只能对单个IP,可用脚本实现对多个IP自动扫描。如果有相同的ip,说明有IP地址冲突,有风险。例:vim arping1.sh

  

四、tcping

        tcp是一种面向连接的、可靠的、基于字节流的传输层通信协议。适应支持多网络应用的分层协议层次结构。 连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。TCP的正式定义由1981年9月的RFC793 给出。随着时间的推移,已经对其做了许多改进,各种错误和不一致的地方逐渐被修复。tcping可以强ping,解决禁ping的问题。

        kali上得先安装:cd /usr/bin/

                                   wget http://pingpros.com/pub/tcpping

                                  chmod 755 tcpping

参数释义:

        -t 不停的发送数据包直到按ctrl+c 停止,可以用此命令做小破坏。

        -n 5 一次发送 5 个数据包,默认一次发送4个 :

                tcpping -n 5 www.baidu.com 会tcpping 百度5次,也可以跟其他数字。

        -i 5 5秒发送一个数据包 :

                 tcpping -i 5 www.baidu.com 每间隔5秒tcping一次百度,也可以跟其他数字,也可以跟小数 :tcping -i 0.5 www.baidu.com 每隔 0.5秒tcping 一次百度。

        -w 0.5 tcpping不通的等待时间 tcping通则忽略次参数 :

                 tcpping -w 0.5 www.baidu.com 如果ping不同会等待0.5秒,默认tcpping不通等2s,tcping 通则忽略此参数。

        -d 在每行前面显示详细日期时间。

        -b 1-4 ping的时候会响铃,参数4会一直响铃 :

                tcping -b 4 www.baidu.com每显示一行内容就会响铃一次,默认会响铃4次

        -r 5 每发送5个数据包重新查找主机一次(通过DNS或路由查找)

        -s ping通就立即退出

        -v 显示版本信息

        -j 使用默认的方法求ping的均值减小波动,网络有一定的不稳定性用此参数可以减小波动。

        -js 5 用5个实例求平均值减小波动,使用这个参数系统会tcping 5次然后求出平均值作为一次结果显示,减小波动。

        –tee 将结果输出到指定位置 :

                tcpping –tee d:\test.txt  192.168.0.100 会将ping的结果保存在d盘下的test文件中。
        -c 只显示转变的信息(ping时间很短一般不会转变)。

        -g 5 失败5次就放弃(注意默认是80端口,端口没开也算失败)

        -h 以http 的模式工作,可以测试主机是否提供http服务。具体如下图


        –proxy-server 指定代理服务 : 没有代理无法测试
        –proxy-port 指定代理服务端口 : 没有代理无法测试
        –proxy-credentials 使用代理的安全验证,需要输入 用户名和密码 : 没有代理无法测试

        –f 强制ping命令至少发送一个比特(byte)

        –file 从文件中获得ping的来源 :

                tcpping –file d:\test.txt 我在d盘下新建一个test文件,并输入 我要tcping的所有ip或域名一行一个,然后执行命令,就会依次tcping文件中指定的地址。      

五、hping3

        hping3命令是用于生成和解析TCPIP协议数据包的开源工具,也是安全审计、防火墙测试等工作的标配工具 。 目前最新版是hping3,支持使用tcl脚本自动化地调用其API。优势在于能够定制数据包的各个部分,因此用户可以灵活对目标机进行细致地探测。常被用来做半连接洪水攻击,压力测试。(后面重点介绍)

六、Nping

        Nping是一个用于生成网络包、分析响应和测量响应时间的开源工具。Nping可以生成多种协议的网络数据包,可以让用户自由填充协议头的字段。其不仅可以作为简单的ping工具来检测存活主机,还可以作为用于网络栈压力测试的原始报文生成器、ARP攻击、拒绝服务攻击、路由跟踪等。Nping的新颖Echo mode可使用户看到数据包在源主机和目标主机之间传输的过程中的变化情况,其是获悉防火墙规则、检测数据包损坏等的非常好的方法。常被用来做全连接洪水攻击,压力测试。(后面重点介绍)

注:它们都可以做主机发现。详见kali主机发现背后的秘密。


上一篇   ping命令的“三板斧”                              下一篇  信息安全界的“齐天大圣” -kali的前世今生


http://chatgpt.dhexx.cn/article/pVCIxgXV.shtml

相关文章

搞了运维开发这么多年,原来 Ping 还能这么玩儿

作者:刘勇 腾讯后台研发工程师,就读于北京大学。目前主要从事腾讯云-云拨测项目后台开发相关工作。 网络:良辰有一百种方法让你 Ping 不通,你却无可奈何 为什么 Ping 不通了?为什么又通了? 这些居然都能…

同一局域网下访问vue项目

同一局域网: 在你的电脑上用快捷键windows R打开cmd,使用ping ip地址(想要访问你项目的那台电脑的ip地址),如果成功后就表示你们处于同一局域网下。 本机ip地址 在你的电脑上用快捷键windows R打开cmd&#xff…

【Java 并发编程】一文详解 Java 中有几种创建线程的方式

Java 中有几种创建线程的方式? 1. Java 程序天然就是多线程的2. 线程的启动与终止2.1 线程的启动(1)继承 Thread 类,重写 run() 方法(2)实现 Runnable 接口,重写 run() 方法(3)Thre…

【操作系统】创建线程的方式

学习目标: 目标:掌握操作系统知识 学习内容: 本文内容:创建线程的方式 文章目录 学习目标:学习内容:1创建线程的方法一 : 继承Thread类1.1 写法一1.2 写法二 2 创建线程的方法二 :…

想不到吧,Java创建线程的方式只有一种

目录 前言继承Thread方式实现Runnable接口实现callable接口总结 前言 看到这个标题的小伙伴先别着急喷我……在面试的时候,我们经常会被问到这种基础题:Java创建线程的方式有几种? 比较正常的答法当然是三种: 继承Thread实现Ru…

【 java 多线程】创建多线程的方式三:使用 Callable 接口创建多线程

📋 个人简介 💖 作者简介:大家好,我是阿牛,全栈领域优质创作者。😜📝 个人主页:馆主阿牛🔥🎉 支持我:点赞👍收藏⭐️留言&#x1f4d…

关于创建线程的方式有几种

导语 在我们平常的面试中,我们经常会被面试官问道:你知道Java中多线程的实现方式有几种吗?在网上刷过面试题的童鞋们,一般都会说两种:继承Thread、实现Runnable,甚至还有甚者可能会说三种、四种的&#xf…

Java创建线程的方式只有一种:Thread+Runnable

Java创建线程的方式其实只有一种 👨‍🎓一、继承Thread👨‍🎓二、实现Runnable接口👨‍🎓三、实现Callable接口👨‍🎓四、通过线程池创建👨‍🎓五、总结 一般…

java中创建线程的4种方式

写在前面的话 java线程创建方式有几种?这种问题在面试中经常被问到,你可能心里马上反映出两种方式(实现Runnable、继承Thread),当你把这两种叙述给面试官听后,面试官会觉得你该掌握的知识已经有了&#xf…

【 java 多线程】创建多线程的方式四:使用线程池创建多线程

📋 个人简介 💖 作者简介:大家好,我是阿牛,全栈领域优质创作者。😜📝 个人主页:馆主阿牛🔥🎉 支持我:点赞👍收藏⭐️留言&#x1f4d…

创建线程的方式

一般来说,创建线程有三种方式:继承 Thread 类、实现 Runnable 接口和实现 Callable 接口。 继承 Thread 类:继承 Thread 类,重写 run() 方法,调用 start() 方法启动线程。 public class MyThread {public static cla…

【JAVAEE】创建线程的方式及线程的常用方法

目录 1.创建线程的四种方式 1.1继承Thread类 1.2实现Runnable接口 1.3匿名内部类 1.4lambda表达式 2.多线程的优势-增加运行速度 3.Thread类及常用方法 3.1构造方法 3.2常见属性 演示后台线程 演示线程是否存活 3.3线程中断 3.4线程等待-join() 3.5获取当前线程 …

创建线程的方式有那些?

目录 一.创建线程的4种方式 二.创建线程方式有什么区别? 一.创建线程的4种方式 (1)写一个类继承Thread,覆盖重写run方法 (2)创建一个Runnable类型的对象,实现run()方法,传入Thread的构造方法中 &#x…

创建线程几种方式

创建线程的几种方式: 方式1:通过继承Thread类创建线程 步骤:1.定义Thread类的子类,并重写该类的run方法,该方法的方法体就是线程需要执行的任务,因此run()方法也被称为线程执行体 2.创建Thread子类的实例&a…

线程创建的四种方式

java中创建线程的四种方法以及区别 Java使用Thread类代表线程,所有的线程对象都必须是Thread类或其子类的实例。Java可以用四种方式来创建线程,如下所示: 1)继承Thread类创建线程 2)实现Runnable接口创建线程 3&am…

四种线程创建方式

一. 继承Thread类 继承Thread类创建线程的步骤: 创建一个自定义类继承Thread类,重写run()方法,将所要单独线程运行写入run()方法中;创建Thread类的子类的对象;调用该对象的start()方法,该start()方法表示开启线程,然后调用执行run方法; Testpublic void test() {Thread.curre…

创建线程的四种方式

我们创建线程池一般有四种方式,分别是: 1.继承Thread类,重写run()方法; 2.实现Runnable接口,重写run()方法; 3.实现Callable接口,重写call()方法; 4.使用线程池创建线程;…

线程创建常用的四种方式

java中创建线程的四种方法以及区别 Java使用Thread类代表线程,所有的线程对象都必须是Thread类或其子类的实例。Java可以用四种方式来创建线程,如下所示: 1)继承Thread类创建线程 2)实现Runnable接口创建线程 3&…

银行测试核心项目之测试阶段分享

最近有小伙伴说「想了解核心系统建设中,冒烟、SIT、UAT、回归测试的重点,如何设计测试案例,或相关的资料推荐等」。 这个话题很笼统,测试这一块儿除了业务测试,还有性能测试、安全测试等;以及不同的角色对…

金融银行测试面试题分享

1、网上银行转账是怎么测的,设计一下测试用例。 回答思路: 宏观上可以从质量模型(万能公式)来考虑,重点需要测试转账的功能、性能与安全性。设计测试用例可以使用场景法为主,先列出转账的基本流和备选流。…