I'm currently implementing a p2p network for a chat application. However, I don't know how to discover online peers. Each peer will join the network with 2 attributes which are a username provided by user and the ip address they have. First of all, ip addresses are mostly dynamic, and users should be able to join the network from anywhere in the world. So, my question is how can I discover online peers, since I don't know their ip addresses?