Il metodo più comune per questo è usare normale ordinario DNS . La tua azienda ha probabilmente il proprio nome di dominio; possibilmente uno interno; basta aggiungere un sottodominio sotto di esso - myapp.internal.example.com
o myapp.corp
o qualcosa del genere - e puntare all'indirizzo del tuo server.
myapp.<domain>. A 10.0.0.5
myapp.<domain>. AAAA 2001:db8::123:4
(Dopo tutto, è a server , il suo indirizzo IP non cambierà probabilmente settimanalmente. E quando cambia, tutto ciò che devi aggiornare è il sottodominio in DNS.)
Puoi renderlo più avanzato e utilizzare Record SRV invece di record di indirizzi A / AAAA diretti. Ad esempio, il protocollo di chat XMPP utilizza i record SRV per individuare i server per un dominio, che possono essere multipli con priorità diverse:
chat1.<domain>. A 10.0.0.4
chat2.<domain>. A 10.0.0.7
; priority, weight, port, hostname
_xmpp._tcp.<domain>. SRV 0 0 5222 chat1.<domain>.
_xmpp._tcp.<domain>. SRV 10 0 5222 chat1.<domain>.
Questo è più complesso per le app poiché ora hanno bisogno di una logica per ordinare i record restituiti in base alla priorità SRV e poi in base al peso, ma potrebbe offrire alcuni vantaggi, ad esempio la possibilità di aggiungere server "di backup" più lenti.
Se per qualche motivo non è accettabile, puoi provare uno degli esistenti basati su multicast protocolli di scoperta del servizio . (Alcuni di essi combinano la risoluzione dei nomi e l'individuazione dei servizi in uno, altri la tengono separata).
Apple e varie distribuzioni Linux usano Bonjour / Avahi aka mDNS ("Multicast DNS") combinato con DNS-SD sia per l'individuazione di servizi generali che per la risoluzione dei nomi locali;
Microsoft preferisce l'UPnP-based SSDP , tranne quando preferisce WS-Discovery anziché. Ha usato NetBIOS in passato. Tutti sono documentati sotto Provider di funzioni .
(Alcuni programmi decidono di trasmettere solo datagrammi UDP che dicono "Sono qui!" Nel loro formato personalizzato. Questo non funziona bene).
Solitamente sono presenti API fornite dal sistema operativo e librerie di terze parti per cercare servizi specifici utilizzando il protocollo di rilevamento corrispondente.
Se hai intenzione di implementare qualcosa da te, ogni sistema operativo fornisce anche funzioni a unisciti a un gruppo multicast e per ricevere messaggi che qualcuno invia a quel gruppo. Multicast IP dovrebbe funzionare di default all'interno di un dominio di broadcast, ma spesso deve essere configurato per passare i router .