I want to know how does GameRanger make players appear in the Multiplayer's LAN section of the games. Because in my observations there is no signs of Virtual Network Adapters (or pcaps like WinDivert) being used unlike it's counterparts like Hamachi.
It is possible in C#?
Finally, after a lot of researches...
As you know GameRanger, Tunngle (RIP), Radmin VPN and Hamachi enable their users to play games that support multiplayer over LAN with each other over internet. GameRanger stands out from rest of the solutions in that it doesn't depend on user to install a TUN interface or any kind of solution that makes you expose your whole machine to just play a game.
Instead, GameRanger provides the developers who want to have their game supported on GameRanger to use a SDK. I found that out when a macOS version of a particular game had their game shipped (perhaps accidentally) with debug symbols unstripped. On Windows, GameRanger comes with a DLL file that it injects into the game's process at runtime which hooks Windows Socket APIs and forwards packets to other players.
As for establishing P2P connection between two players; GameRanger performs NAT hole punching possibly using STUN to do so. It also tries UPnP; and if that fails, it asks user to manually forward 16000 UDP port on their routers.