189 8069 5689

子网掩码检查java代码 子网掩码进制

如何获取局域网内所有IP地址 java代码

1.得到局域网网段,可由自己机器的IP来确定 (也可以手动获取主机IP-CMD-ipconfig /all)

成都创新互联是专业的桐梓网站建设公司,桐梓接单;提供成都网站制作、做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行桐梓网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

2.根据IP类型,一次遍历局域网内IP地址

JAVA类,编译之后直接运行便可以得到局域网内所有IP,具体怎样使用你自己编写相应代码调用便可

代码如下::

package bean;

import java.io.*;

import java.util.*;

public class Ip{

static public HashMap ping; //ping 后的结果集

public HashMap getPing(){ //用来得到ping后的结果集

return ping;

}

//当前线程的数量, 防止过多线程摧毁电脑

static int threadCount = 0;

public Ip() {

ping = new HashMap();

}

public void Ping(String ip) throws Exception{

//最多30个线程

while(threadCount30)

Thread.sleep(50);

threadCount +=1;

PingIp p = new PingIp(ip);

p.start();

}

public void PingAll() throws Exception{

//首先得到本机的IP,得到网段

InetAddress host = InetAddress.getLocalHost();

String hostAddress = host.getHostAddress();

int k=0;

k=hostAddress.lastIndexOf(".");

String ss = hostAddress.substring(0,k+1);

for(int i=1;i =255;i++){ //对所有局域网Ip

String iip=ss+i;

Ping(iip);

}

//等着所有Ping结束

while(threadCount0)

Thread.sleep(50);

}

public static void main(String[] args) throws Exception{

Ip ip= new Ip();

ip.PingAll();

java.util.Set entries = ping.entrySet();

Iterator iter=entries.iterator();

String k;

while(iter.hasNext()){

Map.Entry entry=(Map.Entry)iter.next();

String key=(String)entry.getKey();

String value=(String)entry.getValue();

if(value.equals("true"))

System.out.println(key+"--"+value);

}

}

class PingIp extends Thread{

public String ip; // IP

public PingIp(String ip){

this.ip=ip;

}

public void run(){

try{

Process p= Runtime.getRuntime().exec ("ping "+ip+ " -w 300 -n 1");

InputStreamReader ir = new InputStreamReader(p.getInputStream());

LineNumberReader input = new LineNumberReader (ir);

//读取结果行

for (int i=1 ; i 7; i++)

input.readLine();

String line= input.readLine();

if (line.length() 17 || line.substring(8,17).equals("timed out"))

ping.put(ip,"false");

else

ping.put(ip,"true");

//线程结束

threadCount -= 1;

}catch (IOException e){}

}

}

}

根据ip地址和子网掩码计算网段地址和广播地址,要是java代码哦

根据IPV4的规则

IP是32位的整数,掩码是网络的补码。A类地方是高8位是网络地址、B类是高16位、类推。

广播则是对应IP地址的主机地址全是255。

怎样用Java验证ip和子网掩码是否正确,详细问题如下

把ip和子网掩码转换成二进制 做“按位与”运算 得出的就是网络id号a 另一个ip也是一样计算方法 得出网络id号b

比较a=b 就说明在一个子网 反之 不在

ip转换成二进制的时候 注意按段转

java如何确认IP是否属于某地址段

java确认IP属于某地址段主要是判断IP前两组是否相同,使用如下方法:

(1)如果同一个网段的概念是:

192.168.0.1和192.168.0.254,那么用.拆分判断第一二三部分完全一致应该就可以了,当然填写的时候1到255的限制应该是起码的要求了;

(2)如果192.168.0.1 和 192.168.0.254 ,再配合上子网掩码定义为同一网段的话,那就用两个ip转换为二进制之后分别和二进制子网掩码做逻辑与,结果一致是不是就可以定义为同一网段;

网络中对网段的定义我也不太了解,不知道你是要遵循网络中的定义还是按你自己的需求来;


文章标题:子网掩码检查java代码 子网掩码进制
标题URL:http://cdxtjz.com/article/hpjhco.html

其他资讯