java怎么获取局域网内所有主机ip

关注:53  答案:2  mip版

解决时间 2021-01-27 21:31

提问者夢岭杺

2021-01-27 12:02

java怎么获取局域网内所有主机ip

最佳答案

二级知识专家风是甜的

2021-01-27 13:32

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);

}

全部回答

1楼假装安慰

2021-01-27 14:40

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

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(threadcount>30)

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(threadcount>0)

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){}

}

}

}

我要举报

如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

→点此我要举报以上信息!←

推荐资讯

大家都在看

java获取局域网内主机,java怎么获取局域网内所有主机ip相关推荐

  1. java获取主机mac_Java 如何获取主机的MAC地址

    获取MAC地址首先要理解当前的操作系统,由于在不同的操作系统中CMD命令所在的位置不同,因此首先使用System类中的getProperty("os.name")方法获取当前的操作 ...

  2. Java 网络实例一(获取指定主机的IP地址、查看端口是否已使用、获取本机ip地址及主机名、获取远程文件大小)

    获取指定主机的IP地址 import java.net.InetAddress; import java.net.UnknownHostException;public class GetIP {pu ...

  3. java 获取远程服务器信息,java 远程获取服务器信息

    java 远程获取服务器信息 内容精选 换一换 已成功登录Java性能分析.待安装Guardian的服务器已开启sshd.待安装Guardian的服务器已安装JRE,JRE版本要求为Huawei JD ...

  4. java function获取参数_「Java容器」ArrayList源码,大厂面试必问

    ArrayList简介 ArrayList核心源码 ArrayList源码分析 System.arraycopy()和Arrays.copyOf()方法 两者联系与区别 ArrayList核心扩容技术 ...

  5. java接口对接——别人调用我们接口获取数据

    java接口对接--别人调用我们接口获取数据,我们需要在我们系统中开发几个接口,给对方接口规范文档,包括访问我们的接口地址,以及入参名称和格式,还有我们的返回的状态的情况, 接口代码: package ...

  6. java中date如何获取月份_Java:从Date获取月份整数

    如何从Date对象(java.util.Date)获取整数作为整数? 实际上,Date上的getMonth()因为永远而被弃用;) @slhck:已弃用. 从JDK 1.1版开始,由Calendar. ...

  7. java正则表达式所有字符串_java正则表达式如何获取字符串中所有匹配内容

    java正则表达式如何获取字符串中所有匹配内容以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! java正则表达式如何获取 ...

  8. java 获取httpsession_java使用websocket,并且获取HttpSession,源码分析

    转载请在页首注明作者与出处 http://www.cnblogs.com/zhuxiaojie/p/6238826.html 一:本文使用范围 此文不仅仅局限于spring boot,普通的sprin ...

  9. java 反射获取父类的字段_java反射获取父类和子类字段值、赋值

    这里将告诉您java反射获取父类和子类字段值.赋值,具体操作过程:java反射获取字段值.赋值 import org.springframework.util.ReflectionUtils; imp ...

  10. java中为什么不能通过getClass().getName()获取父类的类名

    例如: class A{} public class B extends A{ public void test(){ System.out.println(super.getClass().getN ...

最新文章

  1. Myeclipse安装、配置、测试
  2. idea中如何reimport_IDEA中导入新项目遇坑
  3. 驱动保护中的ObjectType_Callback探索
  4. Keras实现seq2seq案例代码:Bi-LSTM
  5. JavaScript之手写Promise
  6. ARM的存储器映射与存储器重映射【转载】2009-12-14 10:29最近在用LPC2148,看到了一篇文章,感觉很有帮助,就转了过来。
  7. IntelliJ IDEA for Mac在MacOS模式下的动态代码模板快捷键(Live Templates Shortcut)
  8. 新浪云python示例_Python Web框架Flask中使用新浪SAE云存储实例
  9. 141_Power Query之获取钉钉审批流自动刷新Power BI报告
  10. Java性能优化之String字符串优化,BAT 面试官 如何面试
  11. 判断文本的行数c语言,软件工程统计文件中字符串个数,单词个数,词频,行数
  12. jQuery:设置body的背景
  13. pyspark分类算法之随机森林分类器模型实践【randomForestClassifier】
  14. R语言各个包里面的数据集
  15. nginx.conf文件配置及nginx重启脚本
  16. 计算机学生选课系统毕业论文,学生选课管理系统论文
  17. jQuery jqGrid 文档
  18. VC 读取usb相机
  19. Android 阿里云镜像谷歌仓库
  20. ios申请企业开发者账号的代理_苹果企业开发者账号的申请详解

热门文章

  1. 【Numpy基础】矩阵数组相乘与神经网络的实现
  2. Matlab图形修饰之色彩处理
  3. 把图像划分为patch以及用图像块重建图像
  4. win10 通过xrdp远程连接到ubuntu后,显示顶端快捷工具栏,显示最小化后的应用
  5. GCC的__attribute__ ((constructor))和__attribute__ ((destructor))
  6. vim 使用、设置笔记
  7. 五步使用法——搞定XMLHttpRequest
  8. 为什么要baidu/Google问题 尽量少在群里问问题
  9. Java小白的干货铺子(四)
  10. Python 技巧总结