Есть ли утилита, которая может заставить конкретное приложение использовать для взаимодействия конкретный сетевой интерфейс?

Есть ли вообще такие? Можно конечно и самому написать, но вдруг уже есть готовые. айти не получается, потому что поиск выдает похожее, но не то. А если то, так ответов нет.

У меня есть некоторое приложение, работающее с сетью. В компе -- 2 сетевые карты (т.е. два сетевых интерфейса? каждый имеет, соответственно, свой IP). Мне нужно, чтобы любые сетевые запросы от этого приложения уходили с конкретного cсетевого интерфейса. Если бы мы писали программу сами, то это выглядило бы как-то так:

bind(socket, &address, sizeof(address));
connect(socket, ...);


Проблема в том, что программа чужая и кодов у нас нет. А даже если бы и были, перекомпилировать лень :).

Есть ли какая-то утилита, которая могла бы перехватывать все вызовы connect и bind-ить их к какому-то конкретному локальному адресу, если он еще не за-bind-ин? Меня интересует cофт под Windows, т.к. программа, которую мне надо направить из конкретного адреса, существует только под ней. Но и под Linux-ом если есть что-то подобное, то тоже не помешает.
  • Вопрос задан
  • 5025 просмотров
Решения вопроса 1
@TaroKun
ForceBindIP.exe вам в помощь.
old.r1ch.net/stuff/forcebindip
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
opium
@opium
Просто люблю качественно работать
Запускайте вторую в виртуалке с присоединенной второй сетевкой.
Ответ написан
Комментировать
@SokoloffP
Конечно есть, сразу на ум проходят SocksCap и 3proxy. Первая может заставить программу работать с прокси, а вторая - собственно, прокси, там и указать нужный сетевой интерфейс )
Ответ написан
Комментировать
А вариант настроить маршрут только на сервер этого приложения через IP адрес нужного шлюза ?

P.S. Прочитал Ваше уточнение про 2 копии к одному и тому же серверу. Тогда этот вариант не пройдет.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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