如何在Java中以字符串形式从IP获取字节[]表示
假设IP存储在字符串中: 字符串ip=“192.168.2.1” 我想得到包含四个整数的字节数组。如何在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
我怎么做?谢谢 每个数字都是一个字节,因此在您的例子中,合适的字节[]应该是{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
}
}