python - scapy - srp 没有将我的数据包发送到正确的网络接口
问题描述
我在 Windows 10 机器上工作,我正在为我正在做的一些项目使用 scapy。
当我使用嗅探功能从我的以太网接口嗅探数据包时,它按预期工作但是当我使用 srp1 从同一接口发送数据包时,它通过我的 vEthernet 接口而不是通过我的物理以太网接口发送我的数据包(所以数据包永远不会到达目的地)。
这是我的嗅探与 srp1 的代码:
a = sniff(count = 1, iface = "Ethernet")
p = srp1(pkt, iface = "Ethernet")
正如您在两个调用中看到的那样,我使用“以太网”接口名称。
有人能告诉我该怎么做,我的数据包将通过以太网而不是 vEthernet 发送吗?
解决方案
如果您打开 Scapy shell 并键入IFACES
(仅限 Windows ATM),您将看到确切的接口列表。
然后您可以使用接口对象,而不是名称。(请参阅help(IFACES)
各种 util 函数,例如IFACES.dev_from_id()
... 来获取它)。
例子:
from scapy.arch.windows import IFACES
a = IFACES.dev_from_id(5)
sr1(IP(dst="www.google.com")/ICMP(), iface=a)
推荐阅读
- keras - 如何为图像降噪任务制作keras模型
- docker - Docker 网络创建 -d 透明失败
- django - 保持多对多字段django-tables2之间的关系
- amazon-web-services - 如何使用 terraform 在 AWS 中为自定义 AMI 创建创建临时实例?
- reactjs - 无法在 Ionic React 中渲染地图循环返回
- php - 如何检查一个数组的结果是否在另一个数组中并显示不是的?
- flutter - 如何在 Flutter 中添加搜索框?
- javascript - 为什么不选择和更改 D3 中的属性?
- windows - 无法从 Ansible 在 Windows 10 上安装 IIS
- python - 基于 Celery 类的任务组