栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python scapy ping多进程调用

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python scapy ping多进程调用

发送模块
import logging
logging.getLogger("scapy.runtime").setLevel(logging.ERROR) #防止scapy模块出现错误而生成的日志
from scapy.all import * #导入scapy模块
from  random import randint #随机模块random 调用randint随机整数方法
import  sys,os

def  ping_one(host):
    id_ip = randint(1, 65535)  # 随机产生IP ID位
    id_ping = randint(1, 65535)  # 随机产生ping ID位
    seq_ping = randint(1, 65535)  # 随机产生ping序列号位
    packet = IP(dst=host, ttl=1, id=id_ip) / ICMP(id=id_ping, seq=seq_ping) / b'whl'  # 构造一个数据包
    ping = sr1(packet, timeout=0.2, verbose=False)  # 使用ping 发送数据包,timeout超过2秒 关闭详细信息
    if ping!=0:  # 如果ping有响应信息
        os._exit(3)  # 退出码


if __name__ == '__main__':
    ping_one(sys.argv[1])
多进程调用
import logging
logging.getLogger("scapy.runtime").setLevel(logging.ERROR) #防止scapy模块出现错误而生成的日志
import ipaddress  #整理IP
import time #时间模块
import multiprocessing #使用多进程模块
from  ping_one import ping_one #导入执行发包模块
from scapy.all import *
import sys,os
def scany_ping_scan(network):
    net =ipaddress.ip_network(network) #分析数据中的IP地址
    ip_processes={}#进程字典
    for ip in net:#迭代提取net中的数据给 ip
        ip_addr=str(ip)#把每一个读取多IP转换成字符串
        scan_prin_one=multiprocessing.Process(target=ping_one,args=(ip_addr,))#开启多进程 target使用这个函数 并用args把ip_addr中的数据添加进去
        scan_prin_one.start()#开启这个进程
        ip_processes[ip_addr]=scan_prin_one#把这些进程放进这个字典中
    ip_list=[]#设置一个成功列表
    for ip,process in ip_processes.items():
        if process.exitcode ==3:#退出码为3表示ping成功
            ip_list.append(ip)#把存活多IP地址追加到ip_list列表中
        else:
            process.terminate()
    return  sorted(ip_list)
if __name__=='__main__':
    import time
    t1=time.time()
    activ_ip=scany_ping_scan(sys.argv[1])
    print('存活的IP地址如下:')
    for ip in activ_ip:
        print(ip)
    t2=time.time()
    print(t2-t1)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1009886.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号