我想生成一些随机IP地址.但是evertime这个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;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是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();
}
Run Code Online (Sandbox Code Playgroud)
我希望以最后一位ipAddress的形式分配一个随机值.p1,p2,p30
Gui*_*let 45
Random r = new Random();
return r.nextInt(256) + "." + r.nextInt(256) + "." + r.nextInt(256) + "." + r.nextInt(256);
Run Code Online (Sandbox Code Playgroud)
gil*_*lad 10
使用Google Guava:
import com.google.common.net.InetAddresses;
...
String ipString = InetAddresses.fromInteger(random.nextInt()).getHostAddress();
Run Code Online (Sandbox Code Playgroud)
当然,您可以验证生成的地址不是多播等.
| 归档时间: |
|
| 查看次数: |
24218 次 |
| 最近记录: |