怎样输出两个IP之间的全部IP? 定义一个方法,有两个参数,一起始IP,一结束IP。输出这两个IP之间的全部IP谢了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1最简单的,就是做4个循环,分别代表之间的数字2 把IP转化为 long, 然后在2个long之间循环。 一段把IP转化为long的代码 public static long ipToLong(String ip) { String[] parts = StrTools.split(ip, "."); if (parts.length != 4) { return -1; } long rtn = 0; try { for (String part : parts) { rtn <<= 8; rtn += Integer.parseInt(part.trim()); } return rtn; } catch (Exception ex) { ex.printStackTrace(); return -1; } }反向的你自己写吧!来源: http://www.java2000.net/viewthread.jsp?tid=44 还是用第一种吧,第二种还得把long再转回去 import java.net.InetAddress;import java.net.UnknownHostException;public class IpPrinter { public static void main(String[] args) { byte[] ips = {(byte)192, (byte)168, (byte)0, (byte)1}; //起始IP byte[] ipe = {(byte)192, (byte)168, (byte)3, (byte)16}; //终止IP long is = ((0xFFL & ips[0]) << 24) | ((0xFFL & ips[1]) << 16) | ((0xFFL & ips[2]) << 8) | (0xFFL & ips[3]); long ie = ((0xFFL & ipe[0]) << 24) | ((0xFFL & ipe[1]) << 16) | ((0xFFL & ipe[2]) << 8) | (0xFFL & ipe[3]); byte[] ipt = new byte[4]; for (long i = is; i <= ie; i++) { ipt[0] = (byte) ((i & 0xFFFFFFFFL) >>> 24); ipt[1] = (byte) ((i & 0xFFFFFFL) >>> 16); ipt[2] = (byte) ((i & 0xFFFFL) >>> 8); ipt[3] = (byte) (i & 0xFFL); try { InetAddress ia = InetAddress.getByAddress(ipt); System.out.println(ia.getHostAddress()); } catch (UnknownHostException e) { e.printStackTrace(); } } } } 关于封装问题 如何在参数中传入换行符 com.adobe.acrobat.Viewer集成进java项目,读pdf图闪屏问题求教 能不安装jdk,就运行java程序嘛 深入探讨Java枚举的实现 请问javadoc如何使用?急。。。在线等 Applet中动态画图的问题 我菜~~~:安装JDK后怎么执行JAVA程序? 初学请教:为何不能生成包目录。 jlist的清空问题 怎么获取TextFiled里面的值为字符串,如输入009获得后存进数据库就是009而不是9?? socket通讯里的拆包是怎样做?
2 把IP转化为 long, 然后在2个long之间循环。
public static long ipToLong(String ip) {
String[] parts = StrTools.split(ip, ".");
if (parts.length != 4) {
return -1;
}
long rtn = 0;
try {
for (String part : parts) {
rtn <<= 8;
rtn += Integer.parseInt(part.trim());
}
return rtn;
} catch (Exception ex) {
ex.printStackTrace();
return -1;
}
}反向的你自己写吧!来源: http://www.java2000.net/viewthread.jsp?tid=44
import java.net.InetAddress;
import java.net.UnknownHostException;public class IpPrinter { public static void main(String[] args) {
byte[] ips = {(byte)192, (byte)168, (byte)0, (byte)1}; //起始IP
byte[] ipe = {(byte)192, (byte)168, (byte)3, (byte)16}; //终止IP long is = ((0xFFL & ips[0]) << 24) | ((0xFFL & ips[1]) << 16) | ((0xFFL & ips[2]) << 8) | (0xFFL & ips[3]);
long ie = ((0xFFL & ipe[0]) << 24) | ((0xFFL & ipe[1]) << 16) | ((0xFFL & ipe[2]) << 8) | (0xFFL & ipe[3]); byte[] ipt = new byte[4];
for (long i = is; i <= ie; i++) {
ipt[0] = (byte) ((i & 0xFFFFFFFFL) >>> 24);
ipt[1] = (byte) ((i & 0xFFFFFFL) >>> 16);
ipt[2] = (byte) ((i & 0xFFFFL) >>> 8);
ipt[3] = (byte) (i & 0xFFL);
try {
InetAddress ia = InetAddress.getByAddress(ipt);
System.out.println(ia.getHostAddress());
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
}