Java - Print random IP addresses in a given range
我试图从给定范围获取随机IP地址。
EX:startIp ="192.168.1.0"; endIp ="192.168.2.255"
我尝试将范围转换为cidr并使用SubnetUtils获取cidr列表的randomIp,但没有运气。
是否有任何有效的方法从给定的ip-range或api生成随机ip可以做到这一点?
提前致谢。
您可以按照以下步骤实现:
将两个IP转换为数字值
| 12
 
 | InetAddress i= InetAddress .getByName( IPString);
int  intRepresentation=  ByteBuffer.wrap( i.getAddress()) .getInt(); | 
在限制之间生成随机
| 1
 | r.nextInt(High-Low) + Low; | 
将结果转换回数字到IP
		
		
- 
这种方法工作正常,直到最大128.255.255.255。 为了保持其返回的负值并导致低于此值:Exception in thread"main" java.net.UnknownHostException: -847933385 	at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method) 	at java.net.InetAddress$2.lookupAllHostAddr(Unknown Source) 	at java.net.InetAddress.getAddressesFromNameService(Unknown Source) 	at java.net.InetAddress.getAllByName0(Unknown Source) 	at java.net.InetAddress.getAllByName(Unknown Source) .....
- 
@ Forece85转换为long而不是看stackoverflow.com/questions/10087800/…