日常积累.

1.扫内网存活

  • 测试b段,140台存活主机,240s。
  • 测试b端,1500太存活主机,2800s。
nmap -sP --min-hostgroup 1024 --min-parallelism 1024 172.16.0.1/16 -oG ip_list.txt
  • 滤下IP。
import re
with open('ip_list.txt', 'r') as fi:
    for line in fi:
        result = re.findall(r"\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b", line)
        if result:
            fo = open('ip_output.txt', 'a')
            fo.write(result[0]+"\n")
    fo.close()
    fi.close()

2.ARP扫描内网存活

from scapy.all import *
wifi="Intel(R) Ethernet Connection (2) I219-LM"
# 构造数据包
# Ether()层可以省略构造内容,因为默认就是,当然可以写上,可以加快速度
p=Ether(dst="ff:ff:ff:ff:ff:ff",src="b8:81:98:e0:46:6a")/ARP(pdst="10.2.41.1/24")
# 数据包发送,srp同时收到响应数据包和不响应数据包,需要用两个变量来接收。
# ans中有请求有响应,unans只有请求没有响应
ans,unans=srp(p,iface=wifi,timeout=2)
print("一共扫描到了%d个主机"%len(ans))
result=[]
# ans是元组的形式,可以测试ans[0],发现结果是元组的形式
for s,r in ans:
    result.append([r[ARP].psrc,r[ARP].hwsrc])   # 把目标的IP以及MAC地址加入到新的列表
result.sort()   #对列表进行排序
# 遍历列表,打印ip以及对应的mac地址
for ip,mac in result:
    print(ip,"--->",mac)