use ip not hostname for getting geolocation
All checks were successful
Deploy App / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 1m51s

This commit is contained in:
Lee 2024-04-21 23:42:33 +01:00
parent 67efda71d2
commit a8558578f2
3 changed files with 8 additions and 8 deletions

@ -55,20 +55,20 @@ public class MaxMindService {
}
/**
* Lookup the GeoIP information for the query.
* Lookup the GeoIP information for the ip.
*
* @param query The query to lookup
* @param ip The query to lookup
* @return The GeoIP information
*/
public static CityResponse lookup(String query) {
public static CityResponse lookup(String ip) {
if (database == null) { // The database isn't loaded, return null
return null;
}
try {
return database.city(InetAddress.getByName(query));
return database.city(InetAddress.getByName(ip));
} catch (IOException | GeoIp2Exception e) {
log.error("Failed to lookup the GeoIP information for '{}'", query, e);
throw new RuntimeException("Failed to lookup the GeoIP information for '%s'".formatted(query));
log.error("Failed to lookup the GeoIP information for '{}'", ip, e);
throw new RuntimeException("Failed to lookup the IP for '%s'".formatted(ip));
}
}

@ -58,7 +58,7 @@ public final class BedrockMinecraftServerPinger implements MinecraftServerPinger
throw new ResourceNotFoundException("Server '%s' didn't respond to ping".formatted(hostname));
}
return BedrockMinecraftServer.create(hostname, ip, port, records,
MinecraftServer.GeoLocation.fromMaxMind(MaxMindService.lookup(hostname)), response); // Return the server
MinecraftServer.GeoLocation.fromMaxMind(MaxMindService.lookup(ip)), response); // Return the server
} catch (IOException ex ) {
if (ex instanceof UnknownHostException) {
throw new BadRequestException("Unknown hostname '%s'".formatted(hostname));

@ -53,7 +53,7 @@ public final class JavaMinecraftServerPinger implements MinecraftServerPinger<Ja
packetStatusInStart.process(inputStream, outputStream);
JavaServerStatusToken token = Main.GSON.fromJson(packetStatusInStart.getResponse(), JavaServerStatusToken.class);
return JavaMinecraftServer.create(hostname, ip, port, records,
MinecraftServer.GeoLocation.fromMaxMind(MaxMindService.lookup(hostname)), token);
MinecraftServer.GeoLocation.fromMaxMind(MaxMindService.lookup(ip)), token);
}
} catch (IOException ex) {
if (ex instanceof UnknownHostException) {