diff options
author | Edoardo La Greca | 2025-06-20 02:17:49 +0200 |
---|---|---|
committer | Edoardo La Greca | 2025-06-20 02:17:49 +0200 |
commit | 327d7c396bbbb0ca70baccfba95e744aee83b1f6 (patch) | |
tree | 8048b46688afe6f49f5affc06488ee612a535d04 /src | |
parent | 8ff6d74d6ff0e713cfdff430200d8e1a820ff34a (diff) |
add isAddressV4 and isAddressV6 to IPAddress
Diffstat (limited to 'src')
-rw-r--r-- | src/main/kotlin/IPAddress.kt | 22 |
1 files changed, 14 insertions, 8 deletions
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) { |