Ruby: привязка сокета прослушивания к определенному интерфейсу - PullRequest
3 голосов
/ 21 июля 2010

Я хочу создать сокет TCP, который прослушивает только определенный интерфейс (скажем, eth0).Как я могу это сделать?Я пытался просматривать API-интерфейс Socket, но, возможно, я не понимаю все правильно.

Вот мой метод прослушивания:

def listen
  socket = TCPServer.open($port)
  while $looping do
    Thread.start(socket.accept) do |server|
      response = server.read
      puts "Command received: #{response}"
      if sanitize(response)
        execute(response)
      end
    end
  end
end

Спасибо за помощь.

1 Ответ

3 голосов
/ 21 июля 2010

Вам потребуется получить IP-адрес сетевого интерфейса, который вы хотите прослушать, и передать его в качестве первого параметра в TCPServer.new.Я не знаю, как определить интерфейс по имени, кроме разбора вывода %x(ifconfig <interface> | grep inet).

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