sprintf ( ifr.ifr_name, "eth0:1", intf );
if ( setsockopt ( fd, SOL_SOCKET, SO_BINDTODEVICE, (void *)&ifr, sizeof (ifr)) <0 )
{
perror ( "SO_BINDTODEVICE" );
close ( fd );
return ( MAGENT_BIND_DEVICE_ERROR );
}
связь сокета с интерфейсом
Одна сетевая карточка.
Псевдонимы на нее: "eth0", "eth0:1", "eth0:2".
Сокет (клиент), подключающийся к устройству с определенным IP на определенный порт. [си], [ASPLinux 9].
Связь сокета с интерфейсом осуществляется следующим образом:
Код:
Получаю: No such device.
Ума не приложу, в чем может быть загвоздка...
Может есть другой способ связать клиентский сокет с определенным интерфейсом?
Через структуру sockaddr_ll я так понимаю неполучится, т.к. нет привязки к ip получателя. Или есть вариант?