Проще говоря, нет, без центрального сервера сделать это невозможно.
Если вы хотите сделать это, вам просто нужен один или несколько центральных серверов, будь то динамический DNS или нет. Клиентам нужен метод, чтобы определить, куда они должны подключиться, и единственный действительно разумный способ сделать это - это использовать свой собственный сервер, в простейшем случае ему нужно только отправить IP-адрес в ответ.
Виртуальные серверы могут иметься примерно за 15 долларов в месяц, что для ИМО значительно дешевле, чем пытаться использовать или злоупотреблять чужой пропускной способностью.
[Edit].
Проще говоря, есть другой способ, следующий:
Подумав, я думаю, что я бы сделал, чтобы назначить набор пиров в качестве контроллеров кластера и использовать службу динамического DNS, чтобы позволить другим пирам обнаруживать контроллеры кластера.
Выберите поставщика динамического DNS, я назову его myc.ath.cx (я использую http://www.dyndns.com/).
Каждый узел должен быть способен стать контроллером кластера. Контроллер кластера будет содержать список всех других подключенных узлов.
Когда партнер запускается, он ищет myc.ath.cx и пытается подключиться. Если соединение не может быть установлено в течение периода, скажем, 30 секунд, оно берет на себя регистрацию записи DNS.
Любой пир, желающий обнаружить других пиров, может просто запросить myc.ath.cx, и будет предоставлен список
Все одноранговые узлы несут ответственность за периодическую загрузку списка одноранговых узлов в случае, если им требуется кластерный контроллер.
Контроллер кластера будет периодически запрашивать запись DNS - если он изменился со своего IP-адреса, то он знает, что он больше не является контроллером кластера - поэтому он свяжется с контроллером кластера, который в данный момент имеет запись DNS, и предоставит свой список известные хосты.
Контроллер кластера будет периодически связываться с хостами в списке, чтобы убедиться, что они все еще действительны.