java 获取局域网内IP

本文涉及的产品
简介:

Java,如何获取局域网内所有的ip呢?

如何扫描局域网内的所有ip呢?

代码如下:

Java代码   收藏代码
  1. package com.jn.lan;  
  2.   
  3. import java.io.BufferedReader;  
  4. import java.io.InputStreamReader;  
  5. import java.net.InetAddress;  
  6. import java.util.StringTokenizer;  
  7. import java.util.Vector;  
  8.   
  9. import com.common.util.SystemHWUtil;  
  10. import com.string.widget.util.ValueWidget;  
  11.   
  12. public class LANIP {  
  13.     public static InetAddress[] getAllOnline() {  
  14.         // TODO Auto-generated method stub  
  15.         Vector v = new Vector(50);  
  16.         try {  
  17.             // Process process1 =  
  18.             // Runtime.getRuntime().exec("ping -w 2 -n 1 192.168.1.%i");  
  19.             // process1.destroy();  
  20.             Process process = Runtime.getRuntime().exec("arp -a");  
  21.             InputStreamReader inputStr = new InputStreamReader(  
  22.                     process.getInputStream(), "GBK");  
  23.             BufferedReader br = new BufferedReader(inputStr);  
  24.             String temp = "";  
  25.             br.readLine();  
  26.             br.readLine();  
  27.             br.readLine();// 此后开始读取IP地址,之前为描述信息,忽略。  
  28.             while ((temp = br.readLine()) != null) {  
  29.                 System.out.println(temp);  
  30.                 if (!ValueWidget.isNullOrEmpty(temp)) {  
  31.                     StringTokenizer tokens = new StringTokenizer(temp);  
  32.                     String x;  
  33.                     InetAddress add=null;  
  34.                     try {  
  35.                         add = InetAddress.getByName(x = tokens  
  36.                                 .nextToken());  
  37.                     } catch (java.net.UnknownHostException e) {  
  38.                         continue;  
  39.                     }  
  40.                     // System.out.println(x);  
  41.                     v.add(add);  
  42.                     // System.out.println(add);  
  43.                 }  
  44.             }  
  45.             System.out.println(SystemHWUtil.DIVIDING_LINE);  
  46.             v.add(InetAddress.getLocalHost());  
  47.             process.destroy();  
  48.             br.close();  
  49.             inputStr.close();  
  50.         } catch (Exception e) {  
  51.             System.out.println("可能是网络不可用。");  
  52.             e.printStackTrace();  
  53.         }  
  54.         int cap = v.size();  
  55.         InetAddress[] addrs = new InetAddress[cap];  
  56.         for (int i = 0; i < cap; i++) {  
  57.             addrs[i] = (InetAddress) v.elementAt(i);  
  58.              System.out.println(addrs[i]);  
  59.         }  
  60.         return addrs;  
  61.   
  62.     }  
  63.   
  64.     public static void main(String args[]) {  
  65.         InetAddress[] i = new LANIP().getAllOnline();  
  66.     }  
  67. }  

 运行结果:

Java代码   收藏代码
  1.   169.254.255.255       ff-ff-ff-ff-ff-ff     静态          
  2.   224.0.0.2             01-00-5e-00-00-02     静态          
  3.   224.0.0.22            01-00-5e-00-00-16     静态          
  4.   224.0.0.252           01-00-5e-00-00-fc     静态          
  5.   226.81.9.8            01-00-5e-51-09-08     静态          
  6.   239.255.255.250       01-00-5e-7f-ff-fa     静态          
  7.   255.255.255.255       ff-ff-ff-ff-ff-ff     静态          
  8.   
  9. 接口: 169.254.190.162 --- 0xd  
  10.   Internet 地址         物理地址              类型  
  11.   169.254.255.255       ff-ff-ff-ff-ff-ff     静态          
  12.   224.0.0.2             01-00-5e-00-00-02     静态          
  13.   224.0.0.22            01-00-5e-00-00-16     静态          
  14.   224.0.0.252           01-00-5e-00-00-fc     静态          
  15.   226.81.9.8            01-00-5e-51-09-08     静态          
  16.   239.255.255.250       01-00-5e-7f-ff-fa     静态          
  17.   255.255.255.255       ff-ff-ff-ff-ff-ff     静态          
  18.   
  19. 接口: 192.168.1.105 --- 0x14  
  20.   Internet 地址         物理地址              类型  
  21.   192.168.1.1           00-21-5d-3c-79-16     动态          
  22.   192.168.1.106         b8-76-3f-a6-a8-e9     动态          
  23.   192.168.1.109         60-d8-19-14-6c-55     动态          
  24.   192.168.1.110         00-21-5d-3c-79-16     动态          
  25.   192.168.1.255         ff-ff-ff-ff-ff-ff     静态          
  26.   224.0.0.2             01-00-5e-00-00-02     静态          
  27.   224.0.0.22            01-00-5e-00-00-16     静态          
  28.   224.0.0.252           01-00-5e-00-00-fc     静态          
  29.   239.255.255.250       01-00-5e-7f-ff-fa     静态          
  30.   255.255.255.255       ff-ff-ff-ff-ff-ff     静态          
  31.   
  32. 接口: 192.168.137.1 --- 0x15  
  33.   Internet 地址         物理地址              类型  
  34.   192.168.137.182       84-7a-88-cf-87-35     动态          
  35.   192.168.137.255       ff-ff-ff-ff-ff-ff     静态          
  36.   224.0.0.2             01-00-5e-00-00-02     静态          
  37.   224.0.0.22            01-00-5e-00-00-16     静态          
  38.   224.0.0.252           01-00-5e-00-00-fc     静态          
  39.   239.255.255.250       01-00-5e-7f-ff-fa     静态          
  40.   255.255.255.255       ff-ff-ff-ff-ff-ff     静态          
  41. ---------------------------------------  
  42. /169.254.255.255  
  43. /224.0.0.2  
  44. /224.0.0.22  
  45. /224.0.0.252  
  46. /226.81.9.8  
  47. /239.255.255.250  
  48. /255.255.255.255  
  49. /169.254.255.255  
  50. /224.0.0.2  
  51. /224.0.0.22  
  52. /224.0.0.252  
  53. /226.81.9.8  
  54. /239.255.255.250  
  55. /255.255.255.255  
  56. /192.168.1.1  
  57. /192.168.1.106  
  58. /192.168.1.109  
  59. /192.168.1.110  
  60. /192.168.1.255  
  61. /224.0.0.2  
  62. /224.0.0.22  
  63. /224.0.0.252  
  64. /239.255.255.250  
  65. /255.255.255.255  
  66. /192.168.137.182  
  67. /192.168.137.255  
  68. /224.0.0.2  
  69. /224.0.0.22  
  70. /224.0.0.252  
  71. /239.255.255.250  
  72. /255.255.255.255  
  73. wh-THINK/169.254.86.27  
相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
5月前
|
Java
Java 如何根据域名查询对应的ip地址
Java 如何根据域名查询对应的ip地址
268 3
|
1天前
|
安全 Java API
java借助代理ip,解决访问api频繁导致ip被禁的问题
java借助代理ip,解决访问api频繁导致ip被禁的问题
|
2天前
|
网络协议 Java API
深度剖析:Java网络编程中的TCP/IP与HTTP协议实践
【4月更文挑战第17天】Java网络编程重在TCP/IP和HTTP协议的应用。TCP提供可靠数据传输,通过Socket和ServerSocket实现;HTTP用于Web服务,常借助HttpURLConnection或Apache HttpClient。两者结合,构成网络服务基础。Java有多种高级API和框架(如Netty、Spring Boot)简化开发,助力高效、高并发的网络通信。
|
2月前
|
网络协议 Java 数据安全/隐私保护
如何使用Java实现基于TCP/IP协议的即时通讯系统
TCP/IP协议是现代计算机网络通信中最常用的协议之一,而即时通讯系统则是当前互联网应用中非常普遍的一种场景。本文将介绍如何使用Java编程语言来实现基于TCP/IP协议的即时通讯系统,包括建立服务端和客户端、发送和接收消息等方面的详细步骤和示例。
|
4月前
|
网络协议 Java 程序员
java网络编程什么是TCP/IP协议栈?
java网络编程什么是TCP/IP协议栈?
32 2
|
4月前
|
网络协议 安全 Java
Java网络编程入门指南:TCP/IP协议与Socket通信
Java网络编程入门指南:TCP/IP协议与Socket通信
55 1
|
5月前
|
Java
java 如何将ip 1.2.3.4 变成1.2.3.0/24
如果你想手动实现而不使用第三方库,你可以按照如下的方式进行。以下是一个手动实现的简单示例: ```java import java.net.InetAddress; import java.net.UnknownHostException; public class IpToCidrConverter { public static void main(String[] args) { String ipAddress = "1.2.3.4"; int subnetPrefixLength = 24; try {
|
5月前
|
监控 算法 Java
局域网监控软件调度算法Java和Python的简单示例
提供了两个Java与Python的示例,包括设备类、监控软件类、添加设备、监控设备和调度监控任务的方法。监控设备的操作可以根据实际需求进行扩展。
427 0
|
7月前
|
Java
编程作业(2) - 编程题 3. ip地址判定(Java)
编程作业(2) - 编程题 3. ip地址判定(Java)
|
8月前
|
Java
Java如何获取请求的ip 地址?
Java如何获取请求的ip 地址
128 0