LINUX.ORG.RU

Как узнать из открытого сокета номер и имя сетевого интерфейса?

 ,


0

2

Как узнать из открытого сокета номер и имя сетевого интерфейса? Сокет - UDP multicast

Программа принимает из сети multicast пакеты. Нужно еще мониторить физический разрыв ethernet линка. Для этого нужно знать номер интерфейса



Последнее исправление: dmitry-vm (всего исправлений: 2)

Теоретически имя вообще может не быть, если оно биндилось на INADDR_ANY

man getsockname + ...

vel ★★★★★
()

У меня для тебя плохие новости, приложение (обычное) ничего не знает о инрерфейсах. Тебе это надо делать на более низом уровне.

itn ★★★
()
Ответ на: комментарий от dmitry-vm

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

Хочешь по пакету пришедшему оприделить? тогда смотри откуда он пришел и сравнивай с адресами и масками конкретного интерфейчас, список которых ты можешь получить ...

anonymous
()
Ответ на: комментарий от dmitry-vm

А индекс?

udp-сокет может не быть привязан к интерфейсу.

Мультикаст - отдельна вещь. Смотри «ip maddr», если там есть нужная тебе информация, то смотри как ее пролучить (/proc/net/igmp, netlink, getsockopt())

vel ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.