首页 新闻 搜索 专区 学院

java如何随机生成不重复的ip地址??

0
悬赏园豆:5 [已解决问题] 解决于 2016-09-07 12:05

以192.168.x.x开始的ip地址???????

testewr的主页 testewr | 初学一级 | 园豆:3
提问于:2016-08-29 12:22
< >
分享
最佳答案
0

百度:洗牌算法

收获园豆:5
吴瑞祥 | 高人七级 |园豆:28831 | 2016-08-29 12:23
其他回答(1)
0

public static String getRandomIp() {
//ip范围
int[][] range = { { 607649792, 608174079 },//36.56.0.0-36.63.255.255
{ 1038614528, 1039007743 },//61.232.0.0-61.237.255.255
{ 1783627776, 1784676351 },//106.80.0.0-106.95.255.255
{ 2035023872, 2035154943 },//121.76.0.0-121.77.255.255
{ 2078801920, 2079064063 },//123.232.0.0-123.235.255.255
{ -1950089216, -1948778497 },//139.196.0.0-139.215.255.255
{ -1425539072, -1425014785 },//171.8.0.0-171.15.255.255
{ -1236271104, -1235419137 },//182.80.0.0-182.92.255.255
{ -770113536, -768606209 },//210.25.0.0-210.47.255.255
{ -569376768, -564133889 }, //222.16.0.0-222.95.255.255
};

Random rdint = new Random();
int index = rdint.nextInt(10);
String ip = num2ip(range[index][0]
+ new Random().nextInt(range[index][1] - range[index][0]));
return ip;
}

public static String num2ip(int ip) {
int[] b = new int[4];
String x = "";

b[0] = (int) ((ip >> 24) & 0xff);
b[1] = (int) ((ip >> 16) & 0xff);
b[2] = (int) ((ip >> 8) & 0xff);
b[3] = (int) (ip & 0xff);
x = Integer.toString(b[0]) + "." + Integer.toString(b[1]) + "."
+ Integer.toString(b[2]) + "." + Integer.toString(b[3]);

return x;
}
}

testewr | 园豆:3 (初学一级) | 2016-09-07 12:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册