java,如何获取局域网内所有的ip呢?
如何扫描局域网内的所有ip呢?
代码如下:
package com.jn.lan; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.InetAddress; import java.util.StringTokenizer; import java.util.Vector; import com.common.util.SystemHWUtil; import com.string.widget.util.ValueWidget; public class LANIP { public static InetAddress[] getAllOnline() { // TODO Auto-generated method stub Vector v = new Vector(50); try { // Process process1 = // Runtime.getRuntime().exec("ping -w 2 -n 1 192.168.1.%i"); // process1.destroy(); Process process = Runtime.getRuntime().exec("arp -a"); InputStreamReader inputStr = new InputStreamReader( process.getInputStream(), "GBK"); BufferedReader br = new BufferedReader(inputStr); String temp = ""; br.readLine(); br.readLine(); br.readLine();// 此后开始读取IP地址,之前为描述信息,忽略。 while ((temp = br.readLine()) != null) { System.out.println(temp); if (!ValueWidget.isNullOrEmpty(temp)) { StringTokenizer tokens = new StringTokenizer(temp); String x; InetAddress add=null; try { add = InetAddress.getByName(x = tokens .nextToken()); } catch (java.net.UnknownHostException e) { continue; } // System.out.println(x); v.add(add); // System.out.println(add); } } System.out.println(SystemHWUtil.DIVIDING_LINE); v.add(InetAddress.getLocalHost()); process.destroy(); br.close(); inputStr.close(); } catch (Exception e) { System.out.println("可能是网络不可用。"); e.printStackTrace(); } int cap = v.size(); InetAddress[] addrs = new InetAddress[cap]; for (int i = 0; i < cap; i++) { addrs[i] = (InetAddress) v.elementAt(i); System.out.println(addrs[i]); } return addrs; } public static void main(String args[]) { InetAddress[] i = new LANIP().getAllOnline(); } }
运行结果:
169.254.255.255 ff-ff-ff-ff-ff-ff 静态 224.0.0.2 01-00-5e-00-00-02 静态 224.0.0.22 01-00-5e-00-00-16 静态 224.0.0.252 01-00-5e-00-00-fc 静态 226.81.9.8 01-00-5e-51-09-08 静态 239.255.255.250 01-00-5e-7f-ff-fa 静态 255.255.255.255 ff-ff-ff-ff-ff-ff 静态 接口: 169.254.190.162 --- 0xd Internet 地址 物理地址 类型 169.254.255.255 ff-ff-ff-ff-ff-ff 静态 224.0.0.2 01-00-5e-00-00-02 静态 224.0.0.22 01-00-5e-00-00-16 静态 224.0.0.252 01-00-5e-00-00-fc 静态 226.81.9.8 01-00-5e-51-09-08 静态 239.255.255.250 01-00-5e-7f-ff-fa 静态 255.255.255.255 ff-ff-ff-ff-ff-ff 静态 接口: 192.168.1.105 --- 0x14 Internet 地址 物理地址 类型 192.168.1.1 00-21-5d-3c-79-16 动态 192.168.1.106 b8-76-3f-a6-a8-e9 动态 192.168.1.109 60-d8-19-14-6c-55 动态 192.168.1.110 00-21-5d-3c-79-16 动态 192.168.1.255 ff-ff-ff-ff-ff-ff 静态 224.0.0.2 01-00-5e-00-00-02 静态 224.0.0.22 01-00-5e-00-00-16 静态 224.0.0.252 01-00-5e-00-00-fc 静态 239.255.255.250 01-00-5e-7f-ff-fa 静态 255.255.255.255 ff-ff-ff-ff-ff-ff 静态 接口: 192.168.137.1 --- 0x15 Internet 地址 物理地址 类型 192.168.137.182 84-7a-88-cf-87-35 动态 192.168.137.255 ff-ff-ff-ff-ff-ff 静态 224.0.0.2 01-00-5e-00-00-02 静态 224.0.0.22 01-00-5e-00-00-16 静态 224.0.0.252 01-00-5e-00-00-fc 静态 239.255.255.250 01-00-5e-7f-ff-fa 静态 255.255.255.255 ff-ff-ff-ff-ff-ff 静态 --------------------------------------- /169.254.255.255 /224.0.0.2 /224.0.0.22 /224.0.0.252 /226.81.9.8 /239.255.255.250 /255.255.255.255 /169.254.255.255 /224.0.0.2 /224.0.0.22 /224.0.0.252 /226.81.9.8 /239.255.255.250 /255.255.255.255 /192.168.1.1 /192.168.1.106 /192.168.1.109 /192.168.1.110 /192.168.1.255 /224.0.0.2 /224.0.0.22 /224.0.0.252 /239.255.255.250 /255.255.255.255 /192.168.137.182 /192.168.137.255 /224.0.0.2 /224.0.0.22 /224.0.0.252 /239.255.255.250 /255.255.255.255 wh-THINK/169.254.86.27
相关推荐
使用java获取所在局域网的所有在用ip,可以检测目前有哪些ip在使用
首先寻找并打开适合的网络适配器,然后根据输入的局域网 IP 地址构造 ARP 的数据包,然后通过 Java 对网卡数据捕获需要用到 jpcap,jpcap 调用 wincap 实现数据包的发送,并监听返回的数据包,分析局域网内返回的...
在Android开发中,获取局域网内设备的IP和MAC地址是常见的需求,尤其是在构建网络相关的应用程序时。Eclipse是一款广泛使用的集成开发环境(IDE),适用于Android应用开发,而5+app则可能指的是针对Android 5.0及...
本节将深入探讨如何在Android系统中实现高效、快速地获取局域网设备的IP和MAC地址,以及如何优化这个过程。 首先,我们要明白获取局域网设备信息的基本原理。通常,我们使用ARP(Address Resolution Protocol)协议...
本文将深入探讨如何使用Java Servlet结合ARP协议来获取局域网内的活动主机物理地址,并结合前台样式实现这一功能。我们将涵盖ARP协议的基本原理、Java Servlet的使用以及如何与前端交互。 首先,ARP协议是TCP/IP...
1. **获取局域网内IP地址范围**:首先,我们需要知道局域网的IP地址范围。通常,它会是一个类似192.168.1.0/24的子网,其中0.0.0.0到255.255.255.255表示可能的IP地址。我们可以使用`InetAddress`类的`getAllByName...
Java扫描局域网活动主机是一项常见的网络管理任务,主要用于检测并获取网络中正在运行的设备信息。这个程序可能是一个小型的Java应用,利用了多线程技术和线程池来提高扫描速度,确保在短时间内高效地完成对局域网内...
在Android平台上,通过Onvif(Open Network Video Interface Forum)协议来发现并获取局域网内的摄像头播放地址是一项重要的技术应用。Onvif是一种开放的标准,旨在定义网络视频设备之间的接口,使得不同厂商的视频...
java代码获取本地ip 一个分装好的小的工具类
总结来说,Java获取公网IP地址主要依赖于网络请求和第三方服务的配合。`ExternalIpAddressFetcher.java` 类提供了一个简单的方法来实现这个功能,通过向Amazon AWS提供的公共IP检查服务发起HTTP请求,并解析返回的IP...
本项目提供的是一段使用C++编程语言编写的源码,其功能是扫描局域网内的活动主机并获取它们的IP地址。源码中可能包含以下几个关键部分: 1. **ARP包构造**:程序会构造ARP请求报文,其中包含发送方的IP和MAC地址,...
Java 局域网数据包嗅探是一个涉及到网络编程和数据包分析的技术,主要利用Java语言和JPCAP库来实现。JPCAP(Java Packet Capture)是一个强大的库,专为在Java环境中处理网络数据包而设计。下面我们将深入探讨这个...
Java局域网通讯工具是一种基于Socket编程实现的通信软件,它可以允许在同一个局域网内的设备之间进行信息交流。这个工具特别之处在于它只需要Java Development Kit(JDK)1.7版本即可运行,这意味着它兼容性较好,...
请注意,由于安全和隐私原因,直接通过Java获取远程设备的MAC地址可能受到限制,通常需要在同一子网内。 在实际应用中,你可能需要结合数据库来存储和管理这些信息。数据库可以帮助你跟踪设备的变化,进行历史记录...
本文将详细解析如何快速获取局域网内各个网段的电脑IP地址以及电脑的名称,这有助于网络管理员进行设备监控、故障排查和资源管理。我们将主要讨论以下几个方面: 1. **局域网基础知识**:局域网(Local Area ...
标题"通过IP获取局域网计算机共享文件列表"揭示了我们需要利用特定的技术手段来探测并列举出局域网内指定IP地址计算机上开放的共享资源。以下将详细阐述这个过程涉及的知识点: 1. **网络编程基础**:首先,理解...
2. **局域网通信**:系统能够处理局域网内的数据传输,这意味着它需要理解和利用网络协议,如TCP/IP,进行数据包的发送和接收,确保文件能在同一网络中的设备之间安全、高效地传输。 3. **客户端-服务器架构**:CS...
在IT行业中,尤其是在Web开发领域,获取客户端的IP地址是一项常见的任务。这有助于跟踪用户行为、提供地域针对性的服务,甚至进行安全防护。本篇文章将详细解释如何在Java环境下,通过Servlet和Reactive编程模型来...
在Java编程环境中,实现局域网内的文件传输是一项常见的任务,尤其在开发多机协作或者分布式系统时。本文将深入探讨如何使用Java实现这一功能,包括基本原理、关键技术和实践步骤。 首先,我们需要理解局域网(LAN...
8. **代码实践**:实际的Java代码会包含上述步骤的实现,包括初始化网络管理对象,检查权限,获取IP信息,转换IP整数值为字符串,以及处理异常等。 通过这样的demo,开发者可以学习如何在Android环境中动态获取设备...