Das was du suchst nennt sich Broadcast. Bei Lokalen IP Netzwerken ist die .255 die Broadcast IP addresse. Der server lauscht also auf eingehende verbindungen (UDP). Wenn jetzt eine Anwendung sucht, sendet sie ein UDP datagram an die Broadcast IP (angenommen das Netz ist 192.168.178.0, mit der Subnetzmaske 255.255.255.0) 192.168.178.255, dann bekommt jeder im Netzwerk diese Anfrage. Die apps antworten dann über UDP mit einem Acknowledgement zu dem sender der Broadcast message.
Hier hab ich ein Linux beispiel gefunden:
Link Ist zwar C, sollte aber auch ganz einfach mit Pascal gehen. Eventuell kann die ssockets unit das bereits. Indy kanns auf jeden fall und Synapse wahrscheinlich auch.
Die Sachen die Timm vorgeschlagen hat gehen zwar theoretisch auch, 1 und 2 sind aber extrem unpraktikabel und 3 benötigt extra hardware. Wenn du allerdings das Lokale netzwerk verlässt, und z.B. Über das Internet agierst, kannst du natürlich keinen Broadcast senden (aus offensichtlichen Gründen möchte man nicht das man mal eben jeden rechner auf der Welt anpingen kann), dann ist so ein Registryserver unvermeidlich. Im lokalennetzwerk ist Broadcast aber genau dafür gemacht