Java:将 int 转换为 InetAddress

2022-09-01 11:43:12

我有一个包含网络字节顺序的IP地址,我想将其转换为对象。我看到有一个构造函数需要一个,是否有必要将 转换为第一个,还是有另一种方法?intInetAddressInetAddressbyte[]intbyte[]


答案 1

经过测试和工作:

int ip  = ... ;
String ipStr = 
  String.format("%d.%d.%d.%d",
         (ip & 0xff),   
         (ip >> 8 & 0xff),             
         (ip >> 16 & 0xff),    
         (ip >> 24 & 0xff));

答案 2

这应该有效:

int ipAddress = ....
byte[] bytes = BigInteger.valueOf(ipAddress).toByteArray();
InetAddress address = InetAddress.getByAddress(bytes);

您可能必须交换字节数组的顺序,我无法确定数组是否将以正确的顺序生成。


推荐