Как добавить функцию «видеть другой компьютер в этой локальной сети»? - PullRequest
1 голос
/ 03 февраля 2011

Допустим, у меня есть настольное программное обеспечение, которое называется super-dupper-app.Я хочу, чтобы он мог обнаруживать все компьютеры в этой локальной сети с запущенным приложением super-dupper.Бонусные баллы за указатели или фрагменты Python.

1 Ответ

3 голосов
/ 03 февраля 2011

Краткий ответ: вы используете многоадресные пакеты в python . Я полагаю, что есть также привязки python для avahi , который реализует "ZeroConf", также известный как mDNS / DNS-SD, который реализован поверх многоадресной рассылки и избавит вас от необходимости изобретать велосипед, а также будет более стандартным .

Multicast находится где-то между одноадресной передачей (пакеты идут на один хост) и широковещательной передачей (пакеты идут на все хосты), так что он позволяет хосту (через приложения, работающие на них обычно) регистрировать интерес к определенным группам многоадресной передачи. Многоадресный трафик может проходить как через маршрутизаторы, так и через коммутаторы, с соответствующей поддержкой, и идея состоит в том, что создается минимальное связующее дерево для отправки пакетов всем подписанным хостам. В IPv4 многоадресная передача использует подсеть 224/4. Для IPv6 это ff00 :: / 8. В Ethernet многоадресные адреса отображаются на MAC-адреса (т. Е. Бит многоадресной рассылки установлен на 1 в MAC-адресе), что делает возможной эффективную фильтрацию многоадресных потоков.

Маршрутизаторы, на которых работает RIPv2, например, используют многоадресную рассылку для обнаружения других соседних маршрутизаторов и совместного использования их маршрутов, не беспокоя хостов, которые не заинтересованы в RIP.

mDNS / Bonjour / Rendevouz - это подход к автоматическому обнаружению служб, использующий одну многоадресную группу для обмена сообщениями в стиле DNS со списком доступных служб в локальной сети.

...