diff --git a/src/main/scala/net/psforever/actors/net/LoginActor.scala b/src/main/scala/net/psforever/actors/net/LoginActor.scala index b11020c37..bc82119bc 100644 --- a/src/main/scala/net/psforever/actors/net/LoginActor.scala +++ b/src/main/scala/net/psforever/actors/net/LoginActor.scala @@ -91,10 +91,15 @@ object LoginActor { * @return the appropriate host address */ private def selectHostAddress(ipAddress: String): InetSocketAddress = { - ipAddress.substring(0, ipAddress.indexOf(".")) match { - case "127" => localHostAddress - case "10" | "169" | "172" | "192" => gameTestServerAddressLocal - case _ => gameTestServerAddressPublic + val address = InetAddress.getByName(ipAddress) + if (address.isLoopbackAddress()) { + localHostAddress + } + else if (address.isSiteLocalAddress()) { + gameTestServerAddressLocal + } + else { + gameTestServerAddressPublic } } }