小编MSS*_*MSS的帖子

当您连接到 2 个网络时,如何使用 scapy 通过特定接口发送数据包?

我的 PC 上安装了两个以太网卡,因此有两个接口。这两个接口连接到路由器的两个接口。这样:

PC_INT_A --- Network1 ---> ROUTER_INT_1

PC_INT_B --- Network2 ---> ROUTER_INT_2

所有接口都针对 IPv6 通信进行了全面配置。Ping6 通过命令行运行良好。

但是当我尝试通过 scapy 发送时,两个网络都已连接。我只能在代码中发送第一个接口。或者我必须断开一个特定的网络。

见下面的代码:

def ns_with_ll(src, dst):
       base = IPv6(src=src, dst=dst, nh=58, hlim=255)
       ns = ICMPv6ND_NS(tgt=dst)
       ll = ICMPv6NDOptSrcLLAddr()
       pkt = base / ns / ll
       return pkt

if __name__ == '__main__':
    SRC_A = 'IPV6_ADDR_OF_ETH0'
    SRC_B = 'IPV6_ADDR_OF_ETH1'
    DST_1 = 'IPV6_ADDR_ROUTER_INT_1'
    DST_2 = 'IPV6_ADDR_ROUTER_INT_2'

    ns_a = ns_with_ll(SRC_A, DST_1)
    ns_b = ns_with_ll(SRC_B, DST_2)

    sr(ns_a, iface='eth0')
    sr(ns_b, iface='eth1')
Run Code Online (Sandbox Code Playgroud)

上面的代码给了我如下输出:

Begin emission:
*Finished sending 1 packets. …
Run Code Online (Sandbox Code Playgroud)

python networking ping scapy

2
推荐指数
1
解决办法
3411
查看次数

标签 统计

networking ×1

ping ×1

python ×1

scapy ×1