一个基于arp扫描同网段存活ip和mac的python脚本

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project :python-learn 
@File    :arp扫描.py
@Author  :星之尘
@Date    :2023/6/12 19:29 
@脚本说明:
"""
import threading
from scapy.layers.l2 import ARP
from scapy.sendrecv import sr1
import logging

# 定义扫描ip函数
def scan_arp_ip(network_segment, ip_start):
    end_ip = ip_start + 10
    if end_ip > 254:
        end_ip = 254
    for i in range(ip_start, end_ip):
        ip = f'192.168.{network_segment}.{i}'
        data = ARP(pdst=ip)
        try:
            res = sr1(data, timeout=1, verbose=False)
            print(f'存活的ip地址是:{res[ARP].psrc} mac地址是:{res[ARP].hwsrc}')
        except:
            pass

if __name__ == '__main__':
    network_segment = int(input('请输入要扫描的网段:'))
    for i in range(1, 254, 10):
        threading.Thread(target=scan_arp_ip, args=(network_segment, i)).start()
效果图