Python Scapy库实现ARP扫描和ARP欺骗

 ARP扫描:检测指定IP网段中哪些主机是在线的,并获取它们的MAC地址

from scapy.all import *  
import argparse  
import threading  
import time  
import logging  
  
# 解析CIDR格式的网段,并返回IP地址列表  
# >接受一个CIDR格式的网段作为输入(例如192.168.1.0/24)。
# >将网段解析为IP地址列表。
# >通过子网掩码长度计算IP地址范围,并生成该网段内所有可能的IP地址。
def Parse_IP(targets):  
    """  
    将CIDR格式的网段字符串转换为IP地址列表。  
  
    :param targets: CIDR格式的网段字符串,例如"192.168.1.1/24"  
    :return: IP地址列表  
    """  
    _split = targets.split('/')  # 按斜杠分割字符串,得到网络地址和子网掩码长度  
    first_ip = _split[0]  # 获取网络地址  
    ip_split = first_ip.split('.')  # 按点分割网络地址,得到各部分的数字  
      
    # 生成IP地址范围  
    ipv4 = range(int(ip_split[3]), int(ip_split[3]) + (2 ** (32 - int(_split[1]))))  
      
    # 构建IP地址列表  
    addr = [f"{ip_split[0]}.{ip_split[1]}.{ip_split[2]}.{p}" for p in ipv4]  
    return addr  
  
# 使用ARP协议扫描指定IP地址,查找在线设备  
# >接受一个IP地址作为输入。
# >使用Scapy发送一个ARP请求到这个IP地址,并等待回复
# >如果收到ARP回复,则提取并打印出该IP地址对应的MAC地址
def ARP_Scan(address):  
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值