24 lines
973 B
Kotlin
24 lines
973 B
Kotlin
package net.axay.kspigot.ipaddress.badipdetectionservices
|
|
|
|
import net.axay.kspigot.ipaddress.BadIPDetectionResult
|
|
import net.axay.kspigot.ipaddress.BadIPDetectionService
|
|
import net.axay.kspigot.languageextensions.getStringOrNull
|
|
import org.json.JSONObject
|
|
|
|
class VPNBlocker : BadIPDetectionService("vpnblocker.net") {
|
|
|
|
override fun requestString(ip: String) = "http://api.vpnblocker.net/v2/json/$ip"
|
|
|
|
override fun interpreteResult(result: JSONObject): BadIPDetectionResult {
|
|
val isBad = result.getStringOrNull("host-ip")
|
|
return when {
|
|
isBad != null -> if (isBad.toBoolean()) BadIPDetectionResult.GENERAL_BAD else BadIPDetectionResult.GOOD
|
|
else -> {
|
|
val remaining = result.getStringOrNull("remaining_requests")?.toIntOrNull()
|
|
?: return BadIPDetectionResult.ERROR
|
|
if (remaining <= 0) BadIPDetectionResult.LIMIT else BadIPDetectionResult.ERROR
|
|
}
|
|
}
|
|
}
|
|
|
|
} |