android獲取wifimac
A. 安卓手機如何偽裝ip或者mac地址
偽裝ip
請用代理或VPN
mac地址
請先ROOT後,可以直接用文本編輯!
B. Android如何獲取到連接的WIFI無線路由器的所有客戶端的MAC地址
路由器連接的mac地址池都是直接支持導出的,不需要抓取什麼頁面這些,都可以直接導出
C. 如何使用java代碼獲取Android移動終端Mac地址
通過設備開通WiFi連接獲取Mac地址是最可取的,代碼如下:
/**
* 設備開通WiFi連接,通過wifiManager獲取Mac地址
*/
public static String getMacFromWifi(Context context){
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
State wifiState = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
if(wifiState == NetworkInfo.State.CONNECTED){//判斷當前是否使用wifi連接
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
if (!wifiManager.isWifiEnabled()) { //如果當前wifi不可用
wifiManager.setWifiEnabled(true);
}
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
return wifiInfo.getMacAddress();
}
return null;
}
D. 在Android機頂盒上 怎樣獲取有線網卡MAC地址
在Android機頂盒上 獲取有線網卡MAC地址方法:
(1) 調用android 的API: NetworkInterface. getHardwareAddress ()
該API的level為9,只有android 2.3以上才有該介面
(2) 調用java 的方法: nbtstat/arp
一般android不支持這兩個命令
(3) 調用Android的API: WifiManager
許可權:
1 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses- permission>
代碼:
12345 WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); WifiInfo info = wifi.getConnectionInfo(); return info.getMacAddress();
這個是設備開通Wifi連接,獲取到網卡的MAC地址
(4) 調用Linux的busybox
/* ***************************************************************** * 子函數:獲得本地MAC地址 ***************************************************************** */ public String getMacAddress(){ String result = ""; String Mac = ""; result = callCmd("busybox ifconfig","HWaddr"); //如果返回的result == null,則說明網路不可取 if(result==null){ return "網路出錯,請檢查網路"; } //對該行數據進行解析 //例如:eth0 Link encap:Ethernet HWaddr 00:16:E8:3E:DF:67 if(result.length()>0 && result.contains("HWaddr")==true){ Mac = result.substring(result.indexOf("HWaddr")+6, result.length()-1); Log.i("test","Mac:"+Mac+" Mac.length: "+Mac.length()); if(Mac.length()>1){ Mac = Mac.replaceAll(" ", ""); result = ""; String[] tmp = Mac.split(":"); for(int i = 0;i<tmp.length;++i){ result +=tmp[i]; } } Log.i("test",result+" result.length: "+result.length()); } return result; } public String callCmd(String cmd,String filter) { String result = ""; String line = ""; try { Process proc = Runtime.getRuntime().exec(cmd); InputStreamReader is = new InputStreamReader(proc.getInputStream()); BufferedReader br = new BufferedReader (is); //執行命令cmd,只取結果中含有filter的這一行 while ((line = br.readLine ()) != null && line.contains(filter)== false) { //result += line; Log.i("test","line: "+line); } result = line; Log.i("test","result: "+result); } catch(Exception e) { e.printStackTrace(); } return result; }
這個需要設備支持busybox工具
(5)查詢記錄了MAC地址的文件「/proc/net/arp」
需要有這個文件,並且記錄了相應的內容