From 327d7c396bbbb0ca70baccfba95e744aee83b1f6 Mon Sep 17 00:00:00 2001 From: Edoardo La Greca Date: Fri, 20 Jun 2025 02:17:49 +0200 Subject: add isAddressV4 and isAddressV6 to IPAddress --- src/main/kotlin/IPAddress.kt | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) (limited to 'src/main/kotlin/IPAddress.kt') diff --git a/src/main/kotlin/IPAddress.kt b/src/main/kotlin/IPAddress.kt index 5e3cb0c..1eb69a7 100644 --- a/src/main/kotlin/IPAddress.kt +++ b/src/main/kotlin/IPAddress.kt @@ -12,15 +12,9 @@ class IPAddress { val split4 = address.split('.') val split6 = address.split(':') - val isV4 = split4.size == 4 && - split4.size == split4.filter { it.matches(Regex("^[0-9]$")) }.size - - val isV6 = split6.size == 16 && - split6.size == split6.filter { it.contains(Regex("^[0-9][a-f]$")) }.size - - if (isV4) { + if (isAddressV4(address)) { this.is4 = true - } else if (isV6) { + } else if (isAddressV6(address)) { this.is4 = false } else { throw NumberFormatException() @@ -34,6 +28,18 @@ class IPAddress { this.address = bytes.toTypedArray() } + fun isAddressV4(address: String): Boolean { + val split4 = address.split('.') + return split4.size == 4 && + split4.size == split4.filter { it.matches(Regex("^[0-9]$")) }.size + } + + fun isAddressV6(address: String): Boolean { + val split6 = address.split(':') + return split6.size == 16 && + split6.size == split6.filter { it.contains(Regex("^[0-9][a-f]$")) }.size + } + override fun toString(): String { val str: String if (this.is4) { -- cgit v1.2.3