java wifi信息_Java中如何获取WiFi的名称和信息?
=Start=
缘由:
收集整理一下在Java中如何获取WiFi相关信息的方法,方便需要的时候使用。
正文:
参考解答:
简单来说就是:Java中没有原生的类来实现这个功能(不像获取IP或主机名时还有NetworkInterface这个类可用),可以使用JNI调用本机库或使用Runtime调用系统命令来实现这一底层一点的功能。
Java is not designed to do that kind of things, is hard to implement in a platform-independent way and any hardware-level detail can not be managed in Java by principle.
下面简单记录一下在macOS系统中使用Runtime调用系统命令来实现获取WiFi相关信息的功能:
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class JavaExecCmd {
public static String execReadToString(String execCommand) throws IOException {
try (Scanner s = new Scanner(Runtime.getRuntime().exec(execCommand).getInputStream()).useDelimiter("\\A")) {
return s.hasNext() ? s.next() : "";
}
}
public static Map getWifiInfo() {
Map wifiMap = new HashMap<>();
String macCommand = "/System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -I";
String wifiInfo = null;
try {
wifiInfo = execReadToString(macCommand);
} catch (IOException e) {
e.printStackTrace();
return wifiMap;
}
// System.out.println(wifiInfo);
for (String line: wifiInfo.split("\n")) {
if (line.contains(" SSID:")) {
wifiMap.put("ssid", line.split(":", 2)[1].trim());
} else if (line.contains("BSSID:")) {
wifiMap.put("bssid", line.split(":", 2)[1].trim());
}
}
return wifiMap;
}
public static void main(String[] args) {
Map result = null;
result = getWifiInfo();
System.out.println(result);
}
}
在Windows上如何希望获取和WiFi相关的信息可以通过如下命令:
> netsh wlan show profiles
> for /f "skip=9 tokens=1,2 delims=:" %i in ('netsh wlan show profiles') do @echo %j | findstr -i -v echo | netsh wlan show profiles %j key=clear
参考链接:
=END=
java wifi信息_Java中如何获取WiFi的名称和信息?相关推荐
- java dump 线程_Java 中怎么获取一份线程 dump 文件
展开全部 当服务器挂起,崩溃或者性能底下时,就需要抓取服务器的线程堆636f707962616964757a686964616f31333363363533栈(Thread Dump)用于后续的分析. ...
- 在Windows, Mac, Linux三种系统中分别获取wifi密码的方式
在Windows, Mac, Linux三种系统中分别获取wifi密码的方式 1. Windows netsh wlan show profile name=wifi名称 key=clear | fi ...
- android 查询wifi信息的类,Android 获取wifi信息
在androi中WIFI信息的获取可以通过系统提供的WIFI Service获取. WifiManager wifi_service = (WifiManager)getSystemService(W ...
- java 股票 代码_Java中利用散列表实现股票行情的查询_java
---- 在java中,提供了一个散列表类Hashtable,利用该类,我们可以按照特定的方式来存储数据,从而达到快速检索的目的.本文以查询股票的收盘数据为例,详细地说明java中散列表的使用方法. ...
- java cache教程_Java 中常用缓存Cache机制的实现
缓存主要可分为二大类: 一.通过文件缓存,顾名思义文件缓存是指把数据存储在磁盘上,不管你是以XML格式,序列化文件DAT格式还是其它文件格式: 二.内存缓存,也就是实现一个类中静态Map,对这个Map ...
- java同步队列_Java 中队列同步器 AQS(AbstractQueuedSynchronizer)实现原理
前言 在 Java 中通过锁来控制多个线程对共享资源的访问,使用 Java 编程语言开发的朋友都知道,可以通过 synchronized 关键字来实现锁的功能,它可以隐式的获取锁,也就是说我们使用该关 ...
- java timestamp 使用_Java中针对Timestamp的操作解析
Java中针对Timestamp的数据类型操作 数据库使用Oracle 10g 32位,存在一张表STU(学生表). 这里写图片描述 二.项目结构图 这里写图片描述 三.关键代码 Stu (bean) ...
- java喜好设置_Java中使用Preferences 的 API设置用户偏好
Preferences的中文意思即偏好或喜好的意思,也就是说同一个程序在每次运行完后,可以通过Preferences来记录用户的偏好,下次启动时,程序会利用这些信息来了解用户的喜好.而这些信息个人理解 ...
- java 字符串总结_Java中字符串(String)总结
先说说JDK API: JDK中包含大量的API类库,所谓API(Application Programming Interface,应用程序编程接口,这些功能以类的形式封装). JDK API包含的 ...
最新文章
- c语言main的作用是什么意思,c语言intmain()是什么意思
- 守护进程的创建方法和步骤
- 网络营销外包专员浅析网络营销外包推广运营效果究竟如何?
- 修改grub2安装双系统的windows引导
- CentOS7Jenkins安装
- http://www.myeclipseide.com/ 官网打不开的问题(转)
- 博途中用的是c吗_配置太低玩不了赛博朋克?学会用这个电脑、手机都能轻松玩2077...
- 1 物料xxxxxx在仓库101里不存在
- websocket的加密和解密过程
- D-Link 不止暴露固件镜像密钥,还被曝5个严重0day
- [工具类]泛型集合转换为DataTable
- 多帧点云数据拼接合并_点云拼接
- 解决Chrome账户无法同步
- html怎么设置取消隐藏,怎么取消wifi隐藏_取消隐藏wifi设置方法-192路由网
- SAP ABAP EXCEL导出多个SHEET页签
- CAD“左手键”快捷命令表,大大提高绘图效率
- 【xla】四、【构图阶段】BuildXlaOpsPass
- 2020年项目经验分享:20厘米厚的无人机激光雷达点云,能否做大比例尺的河道数字高程模型?
- p牛java安全漫谈学习笔记(2)_反序列化与urldns链(基础)
- STM32CubeMX学习笔记(9)——I2C接口使用(读写EEPROM AT24C02)
热门文章
- 玻璃幕墙清洗机器人市场前景_用机器人清洗高楼玻璃幕墙,这个团队前景我们给满分!...
- 清华大学计算机学教授,艾海舟,清华大学计算机系教授
- 佐冶亚理工学院计算机WeiXU博士,2020年佐治亚理工博士读几年
- 我要么进一线外企、要么进一线互联网大厂之算法(1)
- 项目结题软件测试文本,课题实验结题报告.doc
- QML Canvas-雷达
- Guava-EventBus使用详解
- SystemVerilog学习之路(6)— 最小时间和时间片
- 关于系统工程理论与实践的latex模板
- 工具使用|神器Sqlmap tamper的使用介绍