@Byrger
Разработчик ПО для платежных систем

Как отправить запрос через определенный интерфейс?

Привет всем!

На сервере есть 4 интерфейса на которых висит интернет eth0 eth1 eth2 eth3
Задача написать ПО которое будет делать запросы через определенный интерфейс.

Вообще вопрос, как отправить curl запрос через определенный интерфейс?
Пишу на golang, но не в этом суть я думаю
  • Вопрос задан
  • 1856 просмотров
Решения вопроса 1
@Erelecano
Админю сервера, починяю примуса.
Имею на сервере два адреса на одном интерфейсе, для отправки запроса curl'ом с нужного адреса использую
curl --interface N.N.N.N
Где N.N.N.N — IPшник с которого отправлять запрос.
А man нам говорит, что там же можно указывать и имя интерфейса, цитата из man
--interface <name>                                                                                                                                                                    
              Perform an operation using a specified interface. You can enter interface name, IP address or host name. An example could look like:
                                                                                                                                                                                             
               curl --interface eth0
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Вы же TCP/UDP-запросы имеете в виду? Тогда нужно просто соответствующим образом настроить роутинг, сетевой стек ОС сам разберётся, куда отправлять пакеты.
Ответ написан
bitver
@bitver
Не проверял, но по-сути сеть работает так...
https://golang.org/pkg/net/#Interface - отсюда берем адреса
https://golang.org/pkg/net/#DialTCP - сюда 2ым параметром (laddr - local address) вставляем один из адресов на выбор и получаем соединение через выбранный интерфейс.

Поправьте если не прав.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы