我想生成一些随机的IP地址.但是加班这个generateIPAddress函数返回0.0.0.0字符串作为ipAddress.但是它应该每次都返回0.0.0.0以外的随机ipAddress.任何建议为什么会发生?
private void callingGeoService() { int p1 = 255; int p2 = 0; int p3 = 0; int inc = 5; String ipAddress = generateIPAddress(p1,p2,p3); p3 += inc; if (p3 > 255) { p3 = 0; p2 += inc; if (p2 > 255) { p2 = 0; p1--; if (p1 <= 0) { p1 = 0; } } } }
//这是generateIPAddress方法
private String generateIPAddress(int p1,int p2,int p3) { StringBuilder sb = null; int b1 = (p1 >> 24) & 0xff; int b2 = (p2 >> 16) & 0xff; int b3 = (p3 >> 8) & 0xff; int b4 = 0; String ip1 = Integer.toString(b1); String ip2 = Integer.toString(b2); String ip3 = Integer.toString(b3); String ip4 = Integer.toString(b4); //Now the IP is b1.b2.b3.b4 sb = new StringBuilder(); sb.append(ip1).append(".").append(ip2).append(".").append(ip3).append(".").append(ip4); // System.out.println(sb); return sb.toString(); }
我想要一些随机ipAddress基本上所以我有硬编码的起始ipAddress位的形式为p1,p3,最后一位应为0.
解决方法
Random r = new Random(); return r.nextInt(256) + "." + r.nextInt(256) + "." + r.nextInt(256) + "." + r.nextInt(256);