我正在尝试使用套接字网络和名为 Scapy 的 Python 库的组合在我的主机中创建一个接口的桥接器,就像 Virtualbox 和 VMWare 的桥接适配器一样,在 Windows 操作系统或Unix 操作系统上的 libpcap 幕后)。这是我创建的桥接脚本,用于将socketQEMU的网络后端创建的 VLAN 连接到外部接口:
import argparse
import scapy
import threading
import socket
import struct
import scapy.sendrecv
import scapy.packet
import scapy.config
import scapy.layers.l2
MAX_PACKET_SIZE = 65535
send_lock = threading.Lock()
qemu_senders = set()
iface_senders = set()
def qemu_in_iface_out_traffic_thread_func(iface, mcast_addr, mcast_port, local_addr):
global MAX_PACKET_SIZE
global send_lock
global qemu_senders
global iface_senders
# Create the multicast listen socket.
listener_addr = (local_addr, mcast_port)
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.bind(listener_addr)
mcast_group …Run Code Online (Sandbox Code Playgroud)