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

netsh wlan show profiles

来获取连接过的WiFi名:

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

netsh wlan show profiles name=哦 key=clear

也可以输入指令:遍历查询所有的wifi信息,然后把控制台打印的结果重定向到文件中保存下来,下次只要打开文件查询即可:

指令如下:我保存到D:\passworld.txt这个文件夹中,下次用文本编辑器打开查找即可。

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 >>D:\passworld.txt

但是呢,毕竟连接过的WiFi挺多的。里面的WiFi配置信息有的是我们不需要知道的,这里写一个java的命令行程序来遍历,获取,生成WiFi密码文件,生成的目录是桌面:C:\Users\Administrator\Desktop\所有连过的WiFi密码.txt

package system.cmd;

import java.io.BufferedReader;

import java.io.FileNotFoundException;

import java.io.InputStreamReader;

import java.io.PrintStream;

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 stub

Scanner 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 stub

Scanner scanner = new Scanner(result);

String line;

String wifi;

String passworld;

StringBuilder buff = new StringBuilder();

HashMap WiFiMap = new HashMap();

try

{

/*

* 接口 WLAN 上的配置文件 哦: --->WiFi名是哦,位于"接口 WLAN 上的配置文件"这句话和冒号之间

*/

// 有这句话说明包含有密码

String WiFiNameLineFlag = "接口 WLAN 上的配置文件";

// 捕获java.util.NoSuchElementException

while ((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 getWiFiNameList()

{

String allWiFiName = "netsh wlan show profiles";

String cmdResult = GetWiFiPassWord.exeCmd(allWiFiName);

Scanner scanner = new Scanner(cmdResult);// 扫描结果

ArrayList WiFiNameList = new ArrayList();

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

PrintStream ps = new PrintStream(outFile); // 创建文件输出流

System.setOut(ps); // 设置使用新的输出流,System.out.XXX将输入到文件中

// 获取WiFi名列表

ArrayList WiFiNameList = getWiFiNameList();

for (String string : WiFiNameList)

{

// 根据每个WiFi列表中的WiFi名称,获取WiFi的密码

System.out.println(getWiFiMap(getPassWordByName(string)));

}

// 恢复到原来的标准输出流

System.setOut(out);

System.out.println(

"以生成WiFi密码文件,路径:.\\所有连过的WiFi密码.txt");

//Thread.currentThread().sleep(1000 * 10);

}

}

运行结果:

请勿关闭当前窗口

正在生成WiFi密码文件...

以生成WiFi密码文件,路径:.\所有连过的WiFi密码.txt

打开当前工作路径下的:所有连过的WiFi密码.txt 文件即可查看WiFi密码,

这里过滤掉了大量的无关信息。只留下WiFi名和密码,这样只有电脑连接过的WiFi下次想在手机或者其他设置上连接该WiFi的时候就不愁找不到密码了。

下面给出可执行获取密码的可执行jar包:获取本机连过的所有WiFi密码

下载后,双击jar包运行即可。

参考博客:

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

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

更新说明:

之前写的我用的是绝对路径,换了路径之后就跑不起来了。以后尽量不要使用绝对路径,生成的文件可以生成在当前目录下。

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

  1. java 获取本机连接过的所有WiFI密码

    CMD查询WiFi相关命令 netsh wlan show profiles windows,cmd中可以通过命令行输入指令: netsh wlan show profiles 来获取连接过的WiFi ...

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

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

  3. java date 减小时_java 获取本机当前时间并对小时任意加减

    展开全部 代码如下: import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; publ ...

  4. 获取本机连接的wifi名

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

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

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

  6. java ip地址接口_java获取ip地址与网络接口的方法示例

    java.net包 大家应该都知道,网络相关对象在java.net包中,Java net包下的类如下: 1.获取主机对象InetAddress //获取本地主机对象 InetAddress host ...

  7. 4字节 经纬度_java 获取本机经纬度

    package com.smm.web.mtower.util; import java.io.BufferedReader; import java.io.IOException; import j ...

  8. java 获取wifi强度_Android获取当前已连接的wifi信号强度的方法

    本文实例讲述了Android获取当前已连接的wifi信号强度的方法,是Android程序开发中非常常见的重要技巧.分享给大家供大家参考之用.具体方法如下: 1.得到当前已连接的wifi信息 WifiM ...

  9. java 获取秒数_Java获取精确到秒的时间戳(转)

    1.时间戳简介: 时间戳的定义:通常是一个字符序列,唯一地标识某一刻的时间.数字时间戳技术是数字签名技术一种变种的应用.是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01 ...

最新文章

  1. 【转】判断UIViewController是否正在显示
  2. 广联达2018模板算量步骤_工程人必须掌握:这9份软件算量教程+24份算量计算表,无偿分享...
  3. python 中反斜杠在字符串过长的正确用法
  4. python 错误类型
  5. Ten Must-Have Tools Every Developer Should Download Now-----CodeSimth
  6. shiro如何保证session不失效_请问在不加锁的情况下如何保证线程安全?
  7. android 自定义actionbar,如何让android的actionbar浮动且透明
  8. 冒号和他的学生们(连载18)——系统语言
  9. C语言数组100000,100000!阶乘,应该可以更大
  10. 网卡驱动怎么安装方法教程
  11. 实验3: DHCP 基本配置
  12. DocsBuilderGUI 工具使用介绍
  13. Python使用Opencc库完成字符繁简体转换
  14. flexbox_Flexbox对准综合指南
  15. Android 网页无法访问
  16. win10能上网显示未连接到服务器,Win10网络正常但浏览网页无法连接到互联网怎么办?...
  17. Linux下提高硬盘读写速度
  18. win7安全模式如何打开计算机管理,Win7安全模式怎么进?Win7进入安全模式方法
  19. 微信小程序动态绑定unit-id
  20. one-hot编码的理解

热门文章

  1. Spring官宣,干掉原生JVM!
  2. android ipv6测试,android ipv6网络下测试app运行状态测试
  3. plt 子图的操作【坐标轴标签、刻度、区间和标题】
  4. iPhone健康资料删除方法教程
  5. C++:实现量化设置期限结构,然后确定价格如“价格收益率”或“收益率价格”测试实例
  6. python matplotlib模块解析_Python数据分析模块二:Matplotlib
  7. 海外市场教训多,中国创业板赢面有多大
  8. 如果你做的事情毫不费力,就是在浪费时间
  9. 值得入手的投影仪,好的家用投影仪如何选择?
  10. 淘宝直播如何设置录制回放功能,进行无人直播