java 打印出两个IP之间的所有IP值



import java.net.*;
import java.nio.*;
public class PrintIP {


//一个IP,是一个32位无符号的二进制数。故用long的低32表示无符号32位二进制数。
public static long getIP(InetAddress ip)
{
byte[] b=ip.getAddress();
long l= b[0]<<24L & 0xff000000L|
       b[1]<<16L & 0xff0000L  |
       b[2]<<8L  &  0xff00L   |
       b[3]<<0L  &  0xffL ;
return l;
}
//由低32位二进制数构成InetAddress对象
public static InetAddress toIP(long ip) throws UnknownHostException
{
byte[] b=new byte[4];
int i=(int)ip;//低32位
b[0]= (byte)( (i >> 24) & 0x000000ff );
b[1]= (byte)( (i >> 16) & 0x000000ff );
b[2]= (byte)( (i >> 8)  & 0x000000ff );
b[3]= (byte)( (i >> 0)  & 0x000000ff );
return InetAddress.getByAddress(b);
}

public static void main(String[] args) throws UnknownHostException {
long ip1=getIP(InetAddress.getByName("192.168.0.233"));
long ip2=getIP(InetAddress.getByName("192.168.1.12"));
System.out.println("192.168.0.233到192.168.1.12之间所有的IP是:");
for(long ip=ip1;ip<=ip2;ip++)
{
System.out.println(toIP(ip).getHostAddress());
}
}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值