CMD查询WiFi相关命令

netsh wlan show profiles

windows,cmd中可以通过命令行输入指令:

netsh wlan show profiles

来获取连接过的WiFi名:

netsh wlan show profiles name=哦 key=clear

然后可以输入命令:获取WiFi名为 的个密码

netsh wlan show profiles name=哦 key=clear

Java获取电脑连接过的WiFi密码

/*** 获取windows电脑,连接过的WiFi的密码* 注意,此代码需要在cmd中运行,在ide中运行可能不会有效果。* 所以请打开cmd,然后javac编译本代码,然后再使用java命令运行。*/import java.io.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Scanner;public class GetWiFiPassWord {/*** @param commandStr cmd 控制台命令* @return 该控制台命令commandStr运行的结果*/public static String exeCmd(String commandStr) {String result = null;BufferedReader br = null;try {Process p = Runtime.getRuntime().exec(commandStr);br = new BufferedReader(new InputStreamReader(p.getInputStream()));String line = null;StringBuilder sb = new StringBuilder();while ((line = br.readLine()) != null) {sb.append(line + "\n");}// System.out.println(sb.toString());result = sb.toString();} catch (Exception e) {e.printStackTrace();} finally {if (br != null) {try {br.close();} catch (Exception e) {e.printStackTrace();}}}return result;}/*** @throws FileNotFoundException*/public static void printWiFiPassWord(String result)throws FileNotFoundException {// TODO Auto-generated method stubScanner scanner = new Scanner(result);String line;String wifi;String passworld;while ((line = scanner.nextLine()) != null) {// SSID 名称 :“Hello”if (line.contains("SSID 名称")) {wifi = line.substring(line.lastIndexOf("“") + 1,line.length() - 1);System.out.println("无线:" + wifi.trim());// trim()去掉多余的空白符}// 关键内容 : *********else if (line.contains("关键内容")) {passworld = line.substring(line.lastIndexOf(":") + 1);System.out.println("密码:" + passworld.trim());// trim()去掉多余的空白符}}}public static String getWiFiMap(String result) throws FileNotFoundException {// TODO Auto-generated method stubScanner scanner = new Scanner(result);String line;String wifi;String passworld;StringBuilder buff = new StringBuilder();HashMap<String, String> WiFiMap = new HashMap<String, String>();try {/** 接口 WLAN 上的配置文件 哦: --->WiFi名是哦,位于"接口 WLAN 上的配置文件"这句话和冒号之间*/// 有这句话说明包含有密码String WiFiNameLineFlag = "接口 WLAN 上的配置文件";// 捕获java.util.NoSuchElementExceptionwhile ((line = scanner.nextLine()) != null) {// SSID 名称 :“Hello”if (line.contains(WiFiNameLineFlag)) {wifi = line.substring(line.lastIndexOf(WiFiNameLineFlag)+ WiFiNameLineFlag.length(),line.lastIndexOf(":"));// System.out.print("无线:"+wifi.trim());//trim()去掉多余的空白符buff.append("无线:" + wifi.trim() + "|");}// 关键内容 : *********if (line.contains("关键内容")) {passworld = line.substring(line.lastIndexOf(":") + 1);// System.out.println("|密码:"+passworld.trim());//trim()去掉多余的空白符buff.append("密码:" + passworld.trim());}}} catch (Exception e) {// TODO: handle exception}return buff.toString();}/*** 获取连接过的WiFi的名称列表。** @return 所有连接过的WiFi名称列表*/public static ArrayList<String> getWiFiNameList() {String allWiFiName = "netsh wlan show profiles";String cmdResult = GetWiFiPassWord.exeCmd(allWiFiName);Scanner scanner = new Scanner(cmdResult);// 扫描结果ArrayList<String> WiFiNameList = new ArrayList<String>();String line = null;try {// 会抛出异常 java.util.NoSuchElementException:while ((line = scanner.nextLine()) != null) {// System.out.println(line);if (line.contains(":")) {String name = line.substring(line.lastIndexOf(":") + 1).trim();// :后面没有名字的表示这只是个冒号,不是我们想要的WiFi名if (!name.equals(""))WiFiNameList.add(name);}}} catch (Exception e) {// 不做处理,这里是为了让程序能运行下去// TODO: handle exception}return WiFiNameList;}/*** cmd查询name对应的WiFi名称配置文件,并返回cmd执行的结果** @param name* @return*/public static String getPassWordByName(String name) {String commandStr = "netsh wlan show profile name=" + name+ " key=clear";String result = GetWiFiPassWord.exeCmd(commandStr);return result;}public static void main(String[] args)throws FileNotFoundException, InterruptedException {// 保存下标准输出流PrintStream out = System.out;System.out.println("请勿关闭当前窗口");System.out.println("正在生成WiFi密码文件...");String outFile = "所有连过的WiFi密码.txt";StringBuffer sb = new StringBuffer();String line;// 获取WiFi名列表ArrayList<String> WiFiNameList = getWiFiNameList();for (String string : WiFiNameList) {// 根据每个WiFi列表中的WiFi名称,获取WiFi的密码line = getWiFiMap(getPassWordByName(string));System.out.println(line);sb.append(line).append("\n");}try (OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(new File("所有连过的WiFi密码.txt")));) {writer.write(sb.toString());writer.close();} catch (Exception e) {e.printStackTrace();}// 恢复到原来的标准输出流System.out.println("以生成WiFi密码文件,路径:.\\所有连过的WiFi密码.txt");}}

编译

​​​​​​打开CMD,然后使用如下命令编译该文件:

javac -d . GetWiFiPassWord.java

运行

然后使用如下代码运行程序:

java wifi.GetWiFiPassWord

运行结果:

请勿关闭当前窗口
正在生成WiFi密码文件...
无线:2|密码:123456789
无线:哦|密码:123456789
无线:TOTOLINK_768790|
无线:Tenda_11F508|
无线:LTB|密码:123456789
无线:TP-LINK_D202D6|
无线:220|密码:123456789
无线:204|密码:123456789
以生成WiFi密码文件,路径:.\所有连过的WiFi密码.txt

参考资料

LisenYang的专栏 的博客: 查看计算机连接过的WiFi密码(三种方法)

小蓝的博客  的博客: CMD 获取所有笔记本中连接过的WiFi密码

java 获取本机连接过的所有WiFI密码相关推荐

  1. Java获取本机连接过的所有WiFI密码并且以TXT文本输出文件,javaee开发技术与案例教程

    运行效果: WIFI信息会在控制台打印出来 自动打开生成WIFI信息的TXT文本 原理: 本教程原理就是用Java调用cmd命令获取WIFI信息,然后使用BufferedReader来读取内容. 使用 ...

  2. java windows wifi密码_java 获取本机连接过的所有WiFI密码

    windows,cmd中可以通过命令行输入指令: netsh wlan show profiles 来获取连接过的WiFi名: 然后可以输入命令:获取WiFi名为 哦 的个密码 netsh wlan ...

  3. java 获取已有字体,java获取本机全部可用字体

    java获取本机所有可用字体 //just for fun,那个28个字母的函数满满都是恶心 import java.awt.GraphicsEnvironment ; class Tester { ...

  4. 用java获取本机IP地址

    在网上找了几个用java获取本机IP地址的代码,发现都少都有些不完美,自己整理了一下.突然之间很想把自己的IP地址给获取了,虽然用系统自带命令可以得到,但自己想写一个程序获取一下,到网上搜索了一下ja ...

  5. Java获取本机的ip地址和Mac地址

    Java获取本机的ip地址 //得到IP,InetAddress ia = InetAddress.getLocalHost();String ip=ia.toString().split(" ...

  6. 获取本机连接的wifi名

    /*** 获取本机连接的wifi名** @return 本机连接的wifi名*/ - (NSString*)currentSSID{NSString *ssid = @"";NSA ...

  7. 常识-java获取本机ipv6地址以及关闭临时ipv6地址

    关闭临时ipv6地址 临时ipv6有助于本机安全,然而有时用不到,比如用其进行长久的ftp链接,随时待命是不合适的 右键管理员cmd,输入命令关闭临时ipv6 netsh interface ipv6 ...

  8. 安卓网络连接全解:包括网络连接状态的监听、网络数据使用状态的监听、获取当前网络连接情况、启动wifi、获取当前连接wifi的网络情况、扫描wifi热点

    全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓网络连接情况全解:包括网络连接状态的监听.网络数据使用状态的监听.获取当前网络连接情况.启动wifi.获取当前连接wifi的网络情况.扫描wifi ...

  9. java获取本机ipv4,并使用Google Guava 缓存

    java写个util,获取本机ip,并使用Google Guava 缓存起来 四个方法: 获取本机ipv4 ip转16进制 16进制转ip 校验ip 首先,Google Guava使用的maven配置 ...

最新文章

  1. ubantu 添加防火墙策略_企业环境下用脚本设置ubuntu防火墙
  2. 计算机行业中的烧写怎么翻译,单片机怎么烧录程序_单片机烧录程序步骤说明...
  3. java quartz timer_Java定时器Quartz和Timer
  4. python文件无法关闭_Python脚本无法正常终止
  5. 作者:钱卫宁,华东师范大学数据科学与工程研究院教授、博士生导师。
  6. JS实践与写博客-序
  7. Java泛型之类型擦除
  8. Maven的安装与配置(详细版)
  9. windows10系统 java JDK下载安装及环境变量配置教程
  10. 基于STM32的超声波传感器测距(含代码)
  11. python+Selenium自动化操作Chrome模拟手机浏览器
  12. linux命令如何分类,Linux系统命令的两种分类
  13. 计算字符串的相似度/华为机试(C/C++)
  14. 模拟DVD 实现录入 查看 借出 归还 删除 新增 等功能分层
  15. springboot切面AOP拦截父类或接口中标记注解的方法
  16. pro unity xl编程手册_施耐德Unity Pro XL编程使用入门
  17. 如何在抖音官网链接中一键复制微信号跳转微信
  18. 解决笔记本windows11充电后,屏幕亮度忽明忽暗的问题
  19. Android 7.0拍照/相册/截取图片FileProvider使用
  20. js和cs的值相互传递和函数的相互调用

热门文章

  1. RK3568开发笔记(四):在虚拟机上使用SDK编译制作uboot、kernel和buildroot镜像
  2. 初使selenium
  3. CSS基础-13-垂直导航栏(详细创建过程)
  4. 洛谷 P1594 护卫队
  5. java实现2048小游戏(详细注解)
  6. 最全pink老师JavaScript笔记-JavaScript 基础部分(同步PPT)
  7. 16个HTML5 框架、模板以及生成工具
  8. 2023最新可用的代挂网系统源码/一键安装+对接的LoginSystem
  9. 精益是什么?如何进行精益创新?
  10. NE555八音电子琴