Как определить, на какой интерфейс прибыл многоадресный пакет?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как определить, на какой интерфейс прибыл многоадресный пакет?

Сообщение Anonymous »

У меня есть один сокет, который ожидает пакеты Hello OSPF (224.0.0.5) на разных интерфейсах моей машины, кроме интерфейса обратной связи. На этом этапе я получаю многоадресные пакеты OSPF от двух разных интерфейсов на одном сокете.

Код: Выделить всё

class mcast(object):
def __init__(self):
self.bufsize = BUFSIZE

def create(self, MCAST_GROUP, PROTO):
self.mcast_group = MCAST_GROUP
self.proto = PROTO
s = socket(AF_INET, SOCK_RAW, self.proto)
s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
s.bind((self.mcast_group, self.proto))
netinterfaces = getIPAllInterfaces().items()
for x in range(0, len(netinterfaces)):
if netinterfaces[x][0] == 'lo':
continue
else:
mcast = inet_aton(self.mcast_group) + inet_aton(netinterfaces[x][1])
s.setsockopt(IPPROTO_IP, IP_ADD_MEMBERSHIP, str(mcast))
return s

def recv(self, s):
self.s = s
return self.s.recvfrom(self.bufsize)
Теперь мне нужно знать, в каком интерфейсе я получил пакет, поскольку обработка пакета отличается.

Как узнать, с какого интерфейса я получил многоадресный пакет?

РЕДАКТИРОВАТЬ: из раздела «Получение IP-адреса интерфейса, который получил UDP-пакет Recvfrom() (Microsoft)
здесь «невозможно узнать принимающий IP-адрес, когда один прослушивающий сокет привязан к нескольким IP-адресам. (...) создайте отдельный прослушивающий сокет для каждого IP-адреса». Кто-нибудь знает другое решение?

Подробнее здесь: https://stackoverflow.com/questions/470 ... arrived-on
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как определить, на какой интерфейс прибыл многоадресный пакет?
    Anonymous » » в форуме Python
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Как определить, на какой интерфейс прибыл многоадресный пакет?
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Протестированный класс не прибыл
    Anonymous » » в форуме JAVA
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Протестированный класс не прибыл
    Anonymous » » в форуме JAVA
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Протестированный класс не прибыл
    Anonymous » » в форуме JAVA
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»