ARP扫描程序

2024-04-27 07:20:55 发布

您现在位置:Python中文网/ 问答频道 /正文

#!/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))

我在网上找到了这个代码,我正在努力理解它。 我不明白:

^{pr2}$

为什么有元组ans,unans? 什么是inter= 0.1?在

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

我不明白rcv.sprintf。这是什么?为什么?rcv.斯普林特而不是印刷品? 什么是conf.verb = 0?在

有人能解释一下吗?在


Tags: fromimportinputdatetimetimesysinterfaceprint
2条回答

为什么有元组ans,unans?

A:srp返回answered和{}包,因此它是一个元组。srp function

2、什么是inter=0.1?

A:inter是重新发送未应答数据包或在不再应答数据包时重试的间隔。srp函数调用sndrcvinter参数见sndscv function

我不明白rcv.斯普林特. 这是什么?为什么?rcv.斯普林特而不是印刷品?

A:sprintf输出str,其中format是可以包含指令的字符串 以%结尾,格式如下%[fmt[r],][cls[:nb].]field%。细节在这里sprintf function。在

什么是形态动词=0?

答:'形态动词':详细级别,从0(几乎静音)到3(详细)。verb of Conf Class

关于代码:

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

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

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

另外,使用inter参数可以指定两个包之间等待的时间间隔。在

至于rcv.斯普林特我也不明白。你可以写一些非常简单的东西,比如:

^{pr2}$

至于conf.verb=0变量的作用是将scapy的verbosity设置为0,这样在运行程序时不会在终端中获得太多的输出。在

相关问题 更多 >