Python ICMP扫描

ICMP协议

互联网控制消息协议(英语:Internet Control Message Protocol,缩写:ICMP)是互联网协议族的核心协议之一。它用于网际协议(IP)中发送控制消息,提供可能发生在通信环境中的各种问题反馈。通过这些信息,使管理者可以对所发生的问题作出诊断,然后采取适当的措施解决。

Type

ICMP的类型

  • 0 回显请求 Echo Request
  • 8 回显应答 Echo Reply
  • 3 目标不可达 Destination Unreachable
  • 11 超时消息 Time Exceeded
  • 5 重定向消息 Redirect

ICMP扫描

利用ICMP协议来判断存活的主机

原理

对需要扫描的ip发送icmp回显请求Echo Request,如果收到回显应答Echo Reply则判断该ip处于活动状态,简单来说就是ping别人,以是否ping得通来判断是否存活

代码

from random import randint
from scapy.all import *
from optparse import OptionParserfrom scapy.layers.inet import IP, ICMPdef Scan(ip):ip_id = randint(1, 65535)icmp_id = randint(1, 65535)icmp_seq = randint(1, 65535)packet = IP(dst=ip, ttl=64, id=ip_id) / ICMP(id=icmp_id, seq=icmp_seq) / b'rootkit'result = sr1(packet, timeout=1, verbose=False)if result:for rcv in result:scan_ip = rcv[IP].srcprint(scan_ip + "--->" 'Host is up')else:print(ip + '--->' 'host is down')def main():parser = OptionParser("Usage:%prog -i <target host>")parser.add_option('-i', type='string', dest='IP', help='specify target host')options, args = parser.parse_args()print("Scan report for " + options.IP + '\n')if '_' in options.IP:for i in range(int(options.IP.split('_')[0].split('.')[3]), int(options.IP.split('-')[1]) + 1):Scan(options.IP.split('.')[0] + '.' + options.IP.split('.')[1] + '.' + options.IP.split('.')[2] + '.' + str(i))time.sleep(0.2)else:Scan(options.IP)print('\nScan finished!.....\n')if __name__ == "__main__":try:main()except Exception:print("interrupted by user, killing all threads...")

Python ICMP扫描相关推荐

  1. python多线程扫描_Python多线程扫描端口代码示例

    本文代码实现Python多线程扫描端口,具体实现代码如下. #coding:utf-8 import socket import thread import time socket.setdefaul ...

  2. php如何扫描局域网ip,python实现扫描局域网指定网段ip的方法

    一.问题由来 工作的局域网中,会接入很多设备,机器人上的网络设备就2个了,一个巨哥红外,一个海康可见光.机器人还有自身的ip. 有时候机器人挂的多了,设备维修更换中,搞来搞去就不记得ip是什么,用自带 ...

  3. python自动化扫描,多线程枚举获取wifi信息,让你走在任何一个地方都能上网

    python自动化扫描,多线程枚举获取wifi信息,让你走在任何一个地方都能上网. 无线网络在无线局域网的范畴是指"无线相容性认证",实质上是一种商业认证,同时也是一种无线联网技术 ...

  4. python 端口扫描 东京_GitHub - w2n1ck/portscan: 一个基于Python+Go的端口扫描及服务探测脚本...

    portscan 一个基于Python+Go的端口扫描及服务探测脚本 0x00 前言 近期由于公司环境整改/迭代以及历史弱口令等撞库,运维同事将内网测试环境的一些SSH等敏感端口对外,导致被挖矿团伙利 ...

  5. python arp扫描_基于python的局域网arp扫描

    ARP协议 ARP 协议也叫做地址解析协议,就是IP地址转换成MAC地址的协议 原理:在局域网内广播,向所有的主机发送包含目标IP地址的请求报文,如果该IP地址的主机接到了报文,那么就会将自己的MAC ...

  6. python多线程扫描_python实现多线程扫描网站目录

    python实现网站目录扫描 st=>start: 程序开始 op=>operation: 打印banner信息 op2=>operation: 打印使用方法 op3=>ope ...

  7. python读取扫描形成的pdf_Python利用PyPDF2库获取PDF文件总页码实例

    Python中可以利用PyPDF2库来获取该pdf文件的总页码,可以根据下面的方法一步步进行下去: 1.首先,要安装PyPDF2库,利用以下命令即可: pip install PyPDF2 2.接着, ...

  8. python 局域网扫描_Python 简化版扫描局域网存活主机

    [code]''' Python 简化版局域网扫描获取存活主机IP by 郑瑞国 1.ping指定IP判断主机是否存活 2.ping所有IP获取所有存活主机 #注: 若在Linux系统下 ping - ...

  9. 用Python去除扫描型PDF中的水印

    内容概述 含水印扫描型PDF文件,其中某页如下图所示,用Python去除其页顶及页底的水印. 处理思路:PDF中的每一页的水印的相对位置基本相同,将PDF每一页输出成图片,然后进行图片编辑,用白色填充 ...

  10. python arp扫描_Python3利用scapy局域网实现自动多线程arp扫描功能

    一.所需Python库 from scapy.all import * import threading 二.实现ip扫描 1.获取c段ip地址 在ARP()里面有ip地址,我们可以从里面提取出前3段 ...

最新文章

  1. 开启笔记本win7的虚拟热点,让你的本本变成wifi
  2. iOS 后台挂起的一些坑
  3. 多校第六场 HDU 4927 JAVA大数类+模拟
  4. 【C语言练习】【指针】定义一个函数move,实现将长度为n、名为a的序列中,各元素依次顺序循环,右移m个位置
  5. 数据可视化【五】 Scatter Plot
  6. Python数据可视化案例一:自定义曲线频率、颜色与线型
  7. JSP自定义标签入门实例
  8. 移动端压缩并ajax上传图片解决方案
  9. Python:如何发布自己的模块
  10. 【交通标志识别】基于matlab GUI SIFT交通标志识别【含Matlab源码 864期】
  11. 烽火超微信息科技 服务器,智算升级 烽火超微发布新一代V6服务器
  12. 秦偲洺 荣获 火星少年计划 第三季 全球线上评选人气奖
  13. 厦门大学计算机专业录取分数线2019,厦门大学录取分数线2019
  14. Unity Bounds 边界框(包围盒)
  15. 笔记-CTA认证需要的操作, 应用可卸载, 系统还原后应用重装--Camera模块
  16. 浙江凤凰计划:用新零售模式做资本市场敲门砖
  17. 物理每日一题(hyq的1、2)
  18. ios html js调用陀螺仪,Js 获取手机陀螺仪
  19. UE4 Matinee功能基本概念及简单示例(Sequence编辑器)
  20. 2021-02-17

热门文章

  1. Linux C语言UDP实现视频文件上传
  2. SPSS参数检验、非参数检验、方差分析
  3. python3 集体智慧编程第九章advancedclassify.py代码
  4. 【租房必看】有了这份租房指南,再也不怕被坑了!(建议收藏)
  5. Linux 基础命令入门 man
  6. Linux之ping命令
  7. LOLCC换肤盒子官网网站源码
  8. Kali linux 全部版本镜像下载
  9. 最近做了个【51单片机积木式图形化中文编程软件/c语言代码生成器/电路仿真】
  10. 浮想联翩后自我脑暴的罗马帝国