Python ICMP扫描
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扫描相关推荐
- python多线程扫描_Python多线程扫描端口代码示例
本文代码实现Python多线程扫描端口,具体实现代码如下. #coding:utf-8 import socket import thread import time socket.setdefaul ...
- php如何扫描局域网ip,python实现扫描局域网指定网段ip的方法
一.问题由来 工作的局域网中,会接入很多设备,机器人上的网络设备就2个了,一个巨哥红外,一个海康可见光.机器人还有自身的ip. 有时候机器人挂的多了,设备维修更换中,搞来搞去就不记得ip是什么,用自带 ...
- python自动化扫描,多线程枚举获取wifi信息,让你走在任何一个地方都能上网
python自动化扫描,多线程枚举获取wifi信息,让你走在任何一个地方都能上网. 无线网络在无线局域网的范畴是指"无线相容性认证",实质上是一种商业认证,同时也是一种无线联网技术 ...
- python 端口扫描 东京_GitHub - w2n1ck/portscan: 一个基于Python+Go的端口扫描及服务探测脚本...
portscan 一个基于Python+Go的端口扫描及服务探测脚本 0x00 前言 近期由于公司环境整改/迭代以及历史弱口令等撞库,运维同事将内网测试环境的一些SSH等敏感端口对外,导致被挖矿团伙利 ...
- python arp扫描_基于python的局域网arp扫描
ARP协议 ARP 协议也叫做地址解析协议,就是IP地址转换成MAC地址的协议 原理:在局域网内广播,向所有的主机发送包含目标IP地址的请求报文,如果该IP地址的主机接到了报文,那么就会将自己的MAC ...
- python多线程扫描_python实现多线程扫描网站目录
python实现网站目录扫描 st=>start: 程序开始 op=>operation: 打印banner信息 op2=>operation: 打印使用方法 op3=>ope ...
- python读取扫描形成的pdf_Python利用PyPDF2库获取PDF文件总页码实例
Python中可以利用PyPDF2库来获取该pdf文件的总页码,可以根据下面的方法一步步进行下去: 1.首先,要安装PyPDF2库,利用以下命令即可: pip install PyPDF2 2.接着, ...
- python 局域网扫描_Python 简化版扫描局域网存活主机
[code]''' Python 简化版局域网扫描获取存活主机IP by 郑瑞国 1.ping指定IP判断主机是否存活 2.ping所有IP获取所有存活主机 #注: 若在Linux系统下 ping - ...
- 用Python去除扫描型PDF中的水印
内容概述 含水印扫描型PDF文件,其中某页如下图所示,用Python去除其页顶及页底的水印. 处理思路:PDF中的每一页的水印的相对位置基本相同,将PDF每一页输出成图片,然后进行图片编辑,用白色填充 ...
- python arp扫描_Python3利用scapy局域网实现自动多线程arp扫描功能
一.所需Python库 from scapy.all import * import threading 二.实现ip扫描 1.获取c段ip地址 在ARP()里面有ip地址,我们可以从里面提取出前3段 ...
最新文章
- 开启笔记本win7的虚拟热点,让你的本本变成wifi
- iOS 后台挂起的一些坑
- 多校第六场 HDU 4927 JAVA大数类+模拟
- 【C语言练习】【指针】定义一个函数move,实现将长度为n、名为a的序列中,各元素依次顺序循环,右移m个位置
- 数据可视化【五】 Scatter Plot
- Python数据可视化案例一:自定义曲线频率、颜色与线型
- JSP自定义标签入门实例
- 移动端压缩并ajax上传图片解决方案
- Python:如何发布自己的模块
- 【交通标志识别】基于matlab GUI SIFT交通标志识别【含Matlab源码 864期】
- 烽火超微信息科技 服务器,智算升级 烽火超微发布新一代V6服务器
- 秦偲洺 荣获 火星少年计划 第三季 全球线上评选人气奖
- 厦门大学计算机专业录取分数线2019,厦门大学录取分数线2019
- Unity Bounds 边界框(包围盒)
- 笔记-CTA认证需要的操作, 应用可卸载, 系统还原后应用重装--Camera模块
- 浙江凤凰计划:用新零售模式做资本市场敲门砖
- 物理每日一题(hyq的1、2)
- ios html js调用陀螺仪,Js 获取手机陀螺仪
- UE4 Matinee功能基本概念及简单示例(Sequence编辑器)
- 2021-02-17