2024-02-12 17:10:09 +00:00
|
|
|
import socket
|
|
|
|
|
|
|
|
def forward_artnet(iface_in, iface_out):
|
|
|
|
# Create raw socket to receive and send ArtNet packets
|
|
|
|
sock_in = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.htons(0x0003))
|
|
|
|
sock_in.bind((iface_in, 0))
|
|
|
|
|
|
|
|
sock_out = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.htons(0x0003))
|
|
|
|
sock_out.bind((iface_out, 0))
|
|
|
|
|
|
|
|
while True:
|
|
|
|
# Receive ArtNet packet from the input interface
|
|
|
|
pkt, _ = sock_in.recvfrom(65535)
|
|
|
|
|
|
|
|
# Modify the source MAC address if needed
|
|
|
|
# Modify other fields as required
|
|
|
|
|
|
|
|
# Forward the packet to the output interface
|
|
|
|
sock_out.sendall(pkt)
|
|
|
|
|
|
|
|
print(f"Forwarded ArtNet packet from {iface_in} to {iface_out}")
|
|
|
|
|
|
|
|
# Specify the input and output interfaces
|
|
|
|
input_interface = "eth0"
|
|
|
|
output_interface = "wlan0"
|
|
|
|
|
|
|
|
# Start forwarding ArtNet packets between interfaces
|
|
|
|
forward_artnet(input_interface, output_interface)
|