Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ С\С++ _ Сетевые интерфейсы и как выбрать с каким работать?

Автор: ViGOur 1.2.2019, 15:45

Всем привет.

Есть пускай 10 сетевых интерфейсов, с разными сетями. Нужно программно выбрать какой-то из интерфейсов и работать с ним. Чтобы было понятно, это резервные каналы.

Например: есть eth0, eth1 и eth2.
Мне нужно выйти например в интернет с помощбю eth2, причем строго через него, как это сделать?


Пока не работал с таким, потому даже технологию как это можно сделать не представляю, а может и знаю как, но конец недели! :rolleyes:

Автор: Litkevich Yuriy 4.2.2019, 6:09

ViGOur, у меня в своё время тоже такой вопрос был, но я так и не нашёл ответ :(

Автор: ViGOur 4.2.2019, 11:41

Ну решение данной проблемы есть (тот же VirtualBox позволяет работать с разными интерфейсами Lan, Wan и ...), пока только не понятно как.
Задача не приоритетная, потому пока плотно данным вопросом еще не занялся, но хотелось бы получить ответ на этот вопрос раньше, чем плотно займусь данной задачей. :)

Или, если не получу ответа как решу, то как обычно отвечу здесь.

Автор: Алексей1153 4.2.2019, 11:44

ViGOur, может, нужно какой-нибудь глобальный хук и какие-то пакеты общения с интерфейсом откидывать, где (в пакетах то есть) нет нужного макадреса или ещё чего-то. :unknw:


Автор: Iron Bug 7.2.2019, 4:15

если тебя интересует программное решение, на C/C++ - через bind на исходящий адрес (и порт, если нужно).

Автор: ViGOur 7.2.2019, 8:59

Цитата(Iron Bug @ 7.2.2019, 4:15) *
если тебя интересует программное решение, на C/C++ - через bind на исходящий адрес (и порт, если нужно).
Я пока на этом остановился.

Но интересна реализация выбора у того же Virtaul Box, в нем выбирается тип подключения (непример Сетевой мост), после чего интерфейс (например eth0 или enp3s0 или wlp4s0) после чего сеть работает по нему.

Подозреваю, что так же с bind, а у интерфейс проверяет сеть в которой он работает и всё. Но всё же...

Автор: Iron Bug 7.2.2019, 21:03

ну так других вариантов просто нет. сначала тебе нужно выбрать список интерфейсов и их адресов (системно-зависимое решение). а потом привязываться к конкретному исходящему адресу (и если нужно - порту).

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)