#!/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()
效果图