Как получить сокет для приема пакетов, предназначенных для любого адреса IP-адреса подсети-маршрутизатора?
Я не смог найти никакой информации о том, как это сделать.
В отчаянии я попытался использовать socket.setsockopt, как если бы вы присоединились к многоадресной группе:
# 7 is the interface number
s = socket(AF_INET6, SOCK_DGRAM)
packed_iface_num = struct.pack("I", 7)
group = inet_pton(AF_INET6, 'fd36:d00d:d00d:47cb::') + packed_iface_num
# socket.error: (22, 'Invalid argument')
s.setsockopt(IPPROTO_IPV6, IPV6_JOIN_GROUP, group)
А также с помощью связывания
# socket.error: (99, 'Cannot assign requested address')
s.bind(('fd36:773e:6b4c:47cb::', 9876))
Как и ожидалось, ни один из них не работал. Есть ли способ сделать это?