gpt4 book ai didi

python - ARP扫描程序

转载 作者:行者123 更新时间:2023-11-28 21:45:45 25 4
gpt4 key购买 nike

#!/usr/bin/python3
#Fazer arping da conexao

import sys
from datetime import datetime
from scapy.all import *

try:
interface = input ("\n[*] Set interface: ")
ips = input("[*] Set IP RANGE or Network: ")
except KeyboardInterrupt:
print("\n user aborted")
sys.exit()

print("Scanning...")
start_time = datetime.now()

conf.verb = 0

ans,unans = srp(Ether(dst = "ff:ff:ff:ff:ff:ff")/ARP(pdst = ips), timeout = 2, iface = interface ,inter= 0.1)

print("\n\tMAC\t\tIP\n")

for snd,rcv in ans:
print(rcv.sprintf("%Ether.src% - %ARP.psrc%"))

stop_time = datetime.now()
total_time = stop_time - start_time
print("\n[*] Scan Completed")
print("[*] Scan Duration: %s" %(total_time))

我在互联网上找到了这段代码,我正在尝试理解它。我不明白:

 ans,unans = srp(Ether(dst = "ff:ff:ff:ff:ff:ff")/ARP(pdst = ips), timeout = 2, iface = interface ,inter= 0.1)

为什么有元组 ans,unansinter= 0.1 是什么?

for snd,rcv in ans:
print(rcv.sprintf("%Ether.src% - %ARP.psrc%"))

我没看懂rcv.sprintf。这是什么?为什么 rcv.sprintf 而不是打印?什么是 conf.verb = 0

谁能解释一下?

最佳答案

关于代码:

 ans,unans = srp(Ether(dst = "ff:ff:ff:ff:ff:ff")/ARP(pdst = ips), timeout = 2, iface = interface ,inter= 0.1)

这段代码的作用相当简单。您使用 srp 函数发送数据包并接收它们的应答 - 在这种情况下,数据包由以下协议(protocol)构成:以太网和 ARP。要了解这些协议(protocol)的作用和用途,您必须至少具有一些基本的网络背景。但不管怎样,这段代码所做的是询问由 pdst 参数指定的 ip 来告诉它的 mac 地址。

在元组ans,unans参数中存储了srp函数的答案。

此外,您还可以使用 inter 参数指定两个数据包之间等待的时间间隔。

至于rcv.sprintf我也没看懂。你可以写一些非常简单的东西,比如:

print rcv[ARP].psrc
print rcv[Ether].src

至于 conf.verb=0 变量,它所做的是将 scapy 的详细程度设置为 0,这样当您运行该程序时,您就不会在终端中得到太多输出。

关于python - ARP扫描程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38935304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com