Можно ли заставить рубин отправлять сетевой трафик через определенный iface? - PullRequest
0 голосов
/ 13 июня 2010

Я пишу сценарий, который захватывает внешний IP-адрес вместе с некоторой другой информацией о каждом iface. Я не могу понять, как заставить ruby ​​отправлять трафик через определенный iface (например, eth0 и wlan0). В настоящее время я использую библиотеку open-uri, чтобы открыть http://whatismyip.org и прочитать ее в переменную.

def get_external_ip
  begin
    open("http://whatismyip.org") { |f| return f.read }
  rescue
    return "none"
  end
end

Есть ли способ указать это во время выполнения скрипта или изнутри самого скрипта (в идеале)?

1 Ответ

0 голосов
/ 14 июня 2010

Вы можете проверить это руководство по программированию на Ruby Socket . Но я сомневаюсь, что это можно сделать на высоком уровне, как open. Интерфейс будет обычно выбираться из таблицы маршрутизации, в зависимости от IP-адреса назначения, поэтому, возможно, вместо этого будет проще исправить / настроить таблицу маршрутизации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...