The way I did it in Windward is I send a broadcast packet to everyone connected to the server -- a "who's there?" packet. Each client then responds with a private message to the player that sent the packet, sending their name, faction, ping, etc. The original player that sent the broadcast receives these packets one at a time and prints the result to chat.