How to check if a string is IPv4 or IPv6 or invalid in Kotlin

1 Answer

0 votes
import java.net.InetAddress
import java.net.Inet4Address
import java.net.Inet6Address
import java.net.UnknownHostException

fun checkIpAddress(s: String): String {
    return try {
        val ip = InetAddress.getByName(s)
        when (ip) {
            is Inet4Address -> "IPv4"
            is Inet6Address -> "IPv6"
            else -> "Invalid"
        }
    } catch (e: UnknownHostException) {
        "Invalid"
    }
}

fun main() {
    println(checkIpAddress("112.128.1.2"))
    println(checkIpAddress("2001:0dc7:85b2:0000:0000:6d3e:0380:8651"))
    println(checkIpAddress("999.999.999.999"))
    println(checkIpAddress("abc"))
}



/*
run:

IPv4
IPv6
Invalid
Invalid

*/

 



answered Jan 20 by avibootz

Related questions

...