Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中以字符串形式从IP获取字节[]表示_Java_Bytearray_Ip - Fatal编程技术网

如何在Java中以字符串形式从IP获取字节[]表示

如何在Java中以字符串形式从IP获取字节[]表示,java,bytearray,ip,Java,Bytearray,Ip,假设IP存储在字符串中: 字符串ip=“192.168.2.1” 我想得到包含四个整数的字节数组。 我怎么做?谢谢 每个数字都是一个字节,因此在您的例子中,合适的字节[]应该是{192,168,2,1} 更具体地说,如果您有字符串,您首先必须将其按“.”拆分,然后从每个结果字符串中解析一个字节。类似以下内容: InetAddress ip = InetAddress.getByName("192.168.2.1"); byte[] bytes = ip.getAddress(); for (by

假设IP存储在字符串中:

字符串ip=“192.168.2.1”

我想得到包含四个整数的字节数组。
我怎么做?谢谢

每个数字都是一个字节,因此在您的例子中,合适的字节[]应该是{192,168,2,1}

更具体地说,如果您有字符串,您首先必须将其按“.”拆分,然后从每个结果字符串中解析一个字节。

类似以下内容:

InetAddress ip = InetAddress.getByName("192.168.2.1");
byte[] bytes = ip.getAddress();
for (byte b : bytes) {
    System.out.println(b & 0xFF);
}
这对我很有效(Kotlin):


哦,顺便说一句,0xFF的屏蔽用于大于127的值。在这种情况下,开发人员必须处理UnknownHostException一个字节的最大值为127。你怎么能把192放在这个数组中呢?如果java中有一个无符号字节类型就好了。google-Guava有一个库。添加它并像这样使用:import com.google.common.primitives.UnsignedBytes
    open fun reachable(host: String?): Boolean { // 'host' is string, e.g., "177.111.155.11"
    return try {
        val ipAddress = InetAddress.getByName(host)  // get IP address
        ipAddress.isReachable(2000)         // Is it reachable? T or F
    } catch (e: IOException) {
        CoroutineScope(Main).launch {
            myNote("MyWX LAN Reachable Error", e.message!!) // Display error
        }
        false
    }
}