从 127.0.0.1 转到 2130706433,然后再返回
2022-09-02 00:03:30
使用标准的 Java 库,从 IPV4 地址的虚线字符串表示形式 () 到等效整数表示形式的最快方法是什么 ?"127.0.0.1"
2130706433
相应地,反转所述操作的最快方法是什么 - 从整数到字符串表示?2130706433
"127.0.0.1"
使用标准的 Java 库,从 IPV4 地址的虚线字符串表示形式 () 到等效整数表示形式的最快方法是什么 ?"127.0.0.1"
2130706433
相应地,反转所述操作的最快方法是什么 - 从整数到字符串表示?2130706433
"127.0.0.1"
字符串到整型:
int pack(byte[] bytes) {
int val = 0;
for (int i = 0; i < bytes.length; i++) {
val <<= 8;
val |= bytes[i] & 0xff;
}
return val;
}
pack(InetAddress.getByName(dottedString).getAddress());
整型到字符串:
byte[] unpack(int bytes) {
return new byte[] {
(byte)((bytes >>> 24) & 0xff),
(byte)((bytes >>> 16) & 0xff),
(byte)((bytes >>> 8) & 0xff),
(byte)((bytes ) & 0xff)
};
}
InetAddress.getByAddress(unpack(packedBytes)).getHostAddress()
您还可以使用Google番石榴InetAddress Class。
String ip = "192.168.0.1";
InetAddress addr = InetAddresses.forString(ip);
// Convert to int
int address = InetAddresses.coerceToInteger(addr);
// Back to str
String addressStr = InetAddresses.fromInteger(address));