Как узнать, какие интернет-адреса может прослушивать java-программа

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

Итак, поток такой:

  1. Моя программа лицензирует все доступные интерфейсы на порту 8765.
  2. Узнает список адресов inet4, по которым он может быть доступен (этот шаг является фактическим вопросом)
  3. Публикует этот адрес на доске (пост в блоге или что-то в этом роде).
  4. Заинтересованные клиенты пробуют все из них, чтобы увидеть, с помощью какого из них они смогут связаться с моей программой.

Это все должно быть сделано в Java, конечно :)


person tzador    schedule 02.04.2010    source источник


Ответы (1)


NetworkInterface.getNetworkInterfaces()

person Anon    schedule 02.04.2010