2
A
回答
2
您可以在接入點算連接的設備,它的下面鏈接得到的android硬件MAC地址: http://www.flattermann.net/2011/02/android-howto-find-the-hardware-mac-address-of-a-remote-host/
從上面的鏈接代碼:
/**
* Try to extract a hardware MAC address from a given IP address using the
* ARP cache (/proc/net/arp).<br>
* <br>
* We assume that the file has this structure:<br>
* <br>
* IP address HW type Flags HW address Mask Device
* 192.168.18.11 0x1 0x2 00:04:20:06:55:1a * eth0
* 192.168.18.36 0x1 0x2 00:22:43:ab:2a:5b * eth0
*
* @param ip
* @return the MAC from the ARP cache
*/
public static String getMacFromArpCache(String ip) {
if (ip == null)
return null;
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader("/proc/net/arp"));
String line;
while ((line = br.readLine()) != null) {
String[] splitted = line.split(" +");
if (splitted != null && splitted.length >= 4 && ip.equals(splitted[0])) {
// Basic sanity check
String mac = splitted[3];
if (mac.matches("..:..:..:..:..:..")) {
return mac;
} else {
return null;
}
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
或者如果u有代碼試試問題以下代碼:
public ArrayList<InetAddress> getConnectedDevices(String YourPhoneIPAddress) {
ArrayList<InetAddress> ret = new ArrayList<InetAddress>();
LoopCurrentIP = 0;
String IPAddress = "";
String[] myIPArray = YourPhoneIPAddress.split("\\.");
InetAddress currentPingAddr;
for (int i = 0; i <= 255; i++) {
try {
// build the next IP address
currentPingAddr = InetAddress.getByName(myIPArray[0] + "." +
myIPArray[1] + "." +
myIPArray[2] + "." +
Integer.toString(LoopCurrentIP));
ad = currentPingAddr.toString(); /////////////////
Log.d("MyApp",ad); //////////////
// 50ms Timeout for the "ping"
if (currentPingAddr.isReachable(50)) {
ret.add(currentPingAddr);
ad = currentPingAddr.toString(); /////////////////
Log.d("MyApp",ad); //////////////
}
} catch (UnknownHostException ex) {
} catch (IOException ex) {
}
LoopCurrentIP++;
}
return ret;
}
相關問題
- 1. 如何在連接到BLE設備後獲取電池電量?
- 2. 如何通過連接獲取變量?
- 3. iOS如何獲取連接的藍牙設備的電池電量
- 4. 通過VBScript獲取連接的USB設備的VID/PID
- 5. 如何通過使用ios5的電話框架獲得通話連接時間?
- 6. 如何通過傳入連接將手機與電腦連接?
- 7. 如何獲取Android設備的藍牙設備連接狀態
- 8. 兩臺設備是否連接到同一個wifi,通過接入點進行通話以便相互通信?
- 9. 獲取連接到我的PC的Pocket PC設備的數量
- 10. 如何在連接到WiFi接入點的設備之間進行通信?
- 11. 通過節點連接到salesforce後獲取會話ID
- 12. 網絡連接只有通過電纜連接的設備纔有效
- 13. 通過WLAN連接到許多iOS設備,如多點連接框架
- 14. 的Java - 獲取連接的Android設備
- 15. 如何從連接的iOS設備獲取電池充電週期?
- 16. 如何通過本地套接字連接正確連接到Optivote設備?
- 17. Android藍牙獲取連接的設備
- 18. 通過電話獲取ios設備真正的udid
- 19. 如何與連接到並行端口的設備通話?
- 20. 如何通過USB連接Android設備到數碼相機?
- 21. 通過設備連接到OpenShift
- 22. 模擬設備通過USB連接
- 23. Android - 通過USB連接多臺設備
- 24. 通過GPRS連接移動設備
- 25. 通過USB連接到Android設備
- 26. 通過WiFi將設備連接到Arduino
- 27. 通過WiFi連接Android設備
- 28. iPhone通過Wifi連接設備
- 29. 通過RAPI2連接多個設備
- 30. 如何通過adb接電話
這不起作用。我設置了手機的AP並將筆記本電腦連接到AP。當我執行'cat/proc/net/arp'時,我看到一個記錄包含我的筆記本電腦的MAC和IP,這是正確的。問題是,當我將筆記本電腦與AP斷開連接時,ARP緩存不會刷新,並且執行上一個命令仍然會記錄一條記錄。 –
@MridangAgarwalla我更新了我的回答試試這個! –
您是否嘗試過我的解決方案? –