{"id":4808,"date":"2020-03-06T09:36:17","date_gmt":"2020-03-06T01:36:17","guid":{"rendered":"https:\/\/ixyzero.com\/blog\/?p=4808"},"modified":"2020-03-06T09:36:17","modified_gmt":"2020-03-06T01:36:17","slug":"java%e4%b8%ad%e5%a6%82%e4%bd%95%e8%8e%b7%e5%8f%96wifi%e7%9a%84%e5%90%8d%e7%a7%b0%e5%92%8c%e4%bf%a1%e6%81%af%ef%bc%9f","status":"publish","type":"post","link":"https:\/\/ixyzero.com\/blog\/archives\/4808.html","title":{"rendered":"Java\u4e2d\u5982\u4f55\u83b7\u53d6WiFi\u7684\u540d\u79f0\u548c\u4fe1\u606f\uff1f"},"content":{"rendered":"\n<p>=Start=<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u7f18\u7531\uff1a<\/h4>\n\n\n\n<p>\u6536\u96c6\u6574\u7406\u4e00\u4e0b\u5728Java\u4e2d\u5982\u4f55\u83b7\u53d6WiFi\u76f8\u5173\u4fe1\u606f\u7684\u65b9\u6cd5\uff0c\u65b9\u4fbf\u9700\u8981\u7684\u65f6\u5019\u4f7f\u7528\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u6b63\u6587\uff1a<\/h4>\n\n\n\n<h5 class=\"wp-block-heading\">\u53c2\u8003\u89e3\u7b54\uff1a<\/h5>\n\n\n\n<p>\u7b80\u5355\u6765\u8bf4\u5c31\u662f\uff1aJava\u4e2d\u6ca1\u6709\u539f\u751f\u7684\u7c7b\u6765\u5b9e\u73b0\u8fd9\u4e2a\u529f\u80fd\uff08\u4e0d\u50cf\u83b7\u53d6IP\u6216\u4e3b\u673a\u540d\u65f6\u8fd8\u6709NetworkInterface\u8fd9\u4e2a\u7c7b\u53ef\u7528\uff09\uff0c\u53ef\u4ee5\u4f7f\u7528JNI\u8c03\u7528\u672c\u673a\u5e93\u6216\u4f7f\u7528Runtime\u8c03\u7528\u7cfb\u7edf\u547d\u4ee4\u6765\u5b9e\u73b0\u8fd9\u4e00\u5e95\u5c42\u4e00\u70b9\u7684\u529f\u80fd\u3002<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>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.<\/p><\/blockquote>\n\n\n\n<p>\u4e0b\u9762\u7b80\u5355\u8bb0\u5f55\u4e00\u4e0b\u5728macOS\u7cfb\u7edf\u4e2d\u4f7f\u7528Runtime\u8c03\u7528\u7cfb\u7edf\u547d\u4ee4\u6765\u5b9e\u73b0\u83b7\u53d6WiFi\u76f8\u5173\u4fe1\u606f\u7684\u529f\u80fd\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import java.io.IOException;\nimport java.util.HashMap;\nimport java.util.Map;\nimport java.util.Scanner;\n\npublic class JavaExecCmd {\n    public static String execReadToString(String execCommand) throws IOException {\n        try (Scanner s = new Scanner(Runtime.getRuntime().exec(execCommand).getInputStream()).useDelimiter(\"\\\\A\")) {\n            return s.hasNext() ? s.next() : \"\";\n        }\n    }\n\n    public static Map&lt;String, String> getWifiInfo() {\n        Map&lt;String, String> wifiMap = new HashMap&lt;>();\n        String macCommand = \"\/System\/Library\/PrivateFrameworks\/Apple80211.framework\/Resources\/airport -I\";\n        String wifiInfo = null;\n        try {\n            wifiInfo = execReadToString(macCommand);\n        } catch (IOException e) {\n            e.printStackTrace();\n            return wifiMap;\n        }\n        \/\/ System.out.println(wifiInfo);\n\n        for (String line: wifiInfo.split(\"\\n\")) {\n            if (line.contains(\" SSID:\")) {\n                wifiMap.put(\"ssid\", line.split(\":\", 2)[1].trim());\n            } else if (line.contains(\"BSSID:\")) {\n                wifiMap.put(\"bssid\", line.split(\":\", 2)[1].trim());\n            }\n        }\n\n        return wifiMap;\n    }\n\n    public static void main(String[] args) {\n        Map&lt;String, String> result = null;\n        result = getWifiInfo();\n        System.out.println(result);\n    }\n}<\/code><\/pre>\n\n\n\n<p>\u5728Windows\u4e0a\u5982\u4f55\u5e0c\u671b\u83b7\u53d6\u548cWiFi\u76f8\u5173\u7684\u4fe1\u606f\u53ef\u4ee5\u901a\u8fc7\u5982\u4e0b\u547d\u4ee4\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>> netsh wlan show profiles\n\n> 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<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h5 class=\"wp-block-heading\">\u53c2\u8003\u94fe\u63a5\uff1a<\/h5>\n\n\n\n<p>Java\u4e2d\u5982\u4f55\u83b7\u53d6WiFi\u7684\u540d\u79f0\u548c\u4fe1\u606f\uff1f<br> <a href=\"https:\/\/stackoverflow.com\/questions\/1419569\/wifi-information-in-java\">https:\/\/stackoverflow.com\/questions\/1419569\/wifi-information-in-java<\/a><br> <a href=\"https:\/\/notebookbft.wordpress.com\/2015\/11\/25\/wifi-information-extraction-java\/\">https:\/\/notebookbft.wordpress.com\/2015\/11\/25\/wifi-information-extraction-java\/<\/a><\/p>\n\n\n\n<p>Finding SSID of a wireless network with Java<br> <a href=\"https:\/\/stackoverflow.com\/questions\/5378103\/finding-ssid-of-a-wireless-network-with-java\">https:\/\/stackoverflow.com\/questions\/5378103\/finding-ssid-of-a-wireless-network-with-java<\/a><\/p>\n\n\n\n<p>macOS\u4e0b\u5982\u4f55\u83b7\u53d6WiFi\u540d\u79f0\u7b49\u4fe1\u606f<br> <a href=\"https:\/\/stackoverflow.com\/questions\/4481005\/get-wireless-ssid-through-shell-script-on-mac-os-x\">https:\/\/stackoverflow.com\/questions\/4481005\/get-wireless-ssid-through-shell-script-on-mac-os-x<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/apple.stackexchange.com\/questions\/176702\/how-do-i-get-the-name-of-the-wifi-network-im-connected-to\">https:\/\/apple.stackexchange.com\/questions\/176702\/how-do-i-get-the-name-of-the-wifi-network-im-connected-to<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/stackoverflow.com\/questions\/29201132\/get-only-ethernet-mac-address-via-command-prompt\">https:\/\/stackoverflow.com\/questions\/29201132\/get-only-ethernet-mac-address-via-command-prompt<\/a><\/p>\n\n\n\n<figure class=\"wp-block-embed-wordpress wp-block-embed is-type-wp-embed is-provider-fossbytes\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"RATMmtx2NM\"><a href=\"https:\/\/fossbytes.com\/find-wifi-password-connected-networks-cmd-windows\/\">How To Find Wi-Fi Password Using CMD Of All Connected Networks?<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;How To Find Wi-Fi Password Using CMD Of All Connected Networks?&#8221; &#8212; Fossbytes\" src=\"https:\/\/fossbytes.com\/find-wifi-password-connected-networks-cmd-windows\/embed\/#?secret=uMc9u9PyD6#?secret=RATMmtx2NM\" data-secret=\"RATMmtx2NM\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>=END=<\/p>\n","protected":false},"excerpt":{"rendered":"<p>=Start= \u7f18\u7531\uff1a \u6536\u96c6\u6574\u7406\u4e00\u4e0b\u5728Java\u4e2d\u5982\u4f55\u83b7\u53d6WiFi\u76f8\u5173\u4fe1\u606f\u7684\u65b9\u6cd5\uff0c\u65b9\u4fbf\u9700\u8981\u7684\u65f6\u5019\u4f7f\u7528\u3002 \u6b63\u6587\uff1a  [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23,7,12],"tags":[1575,1574,61,1573,116],"class_list":["post-4808","post","type-post","status-publish","format-standard","hentry","category-knowledgebase-2","category-programing","category-tools","tag-airport","tag-bssid","tag-java","tag-ssid","tag-wifi"],"views":5631,"_links":{"self":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts\/4808","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/comments?post=4808"}],"version-history":[{"count":2,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts\/4808\/revisions"}],"predecessor-version":[{"id":4814,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts\/4808\/revisions\/4814"}],"wp:attachment":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/media?parent=4808"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/categories?post=4808"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/tags?post=4808"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}