无法导入 Scapy arping() 方法

Can't import Scapy arping() method

from scapy.layers.l2 import arping
from scapy.all import *

def scan(ip):
    scapy.layers.l2.arping(ip)

scan('192.168.0.1')

有人可以解释为什么这些导入需要看起来像这样吗?

我在教程中看到这个人足以“将 scapy.all 导入为 scapy”,并且他的 arping() 方法运行良好。

当我删除“from scapy.all import *”时,扫描函数中对 scapy 的引用消失了。如果我导入这个“scapy.layers.l2...”,它不应该消失吗?

如果您按原样导入,您将直接使用名称 arping

from scapy.layers.l2 import arping

def scan(ip):
    arping(ip)

如果你像他们一样导入,你会这样做:

import scapy.all as scapy

def scan(ip):
    scapy.arping(ip)