12

こんにちは、Android から My WIFI ルーターに接続されているすべてのデバイスを検索しようとしています。各デバイス (iOT デバイスを含む) の Mac アドレスとローカル IP アドレスをデバイスする必要があります。現在、ARP キャッシュ テーブルから検索しようとしています。しかし、スキャン中に一部のデバイスが見つからない場合があり、それほど正確ではありません。

私のコード:

 List<LocalDeviceInfo> devicesInfos = new ArrayList<>();


        BufferedReader bufferedReader = null;

        try {
            bufferedReader = new BufferedReader(new FileReader("/proc/net/arp"));

            String line;
            while ((line = bufferedReader.readLine()) != null) {
                String[] splitted = line.split(" +");
                if (splitted != null && splitted.length >= 4) {
                    String ip = splitted[0];
                    String mac = splitted[3];
                    if (mac.matches("..:..:..:..:..:..")) {
                        LocalDeviceInfo thisNode = new LocalDeviceInfo(ip, mac);
                        devicesInfos.add(thisNode);
                    }
                }
            }

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally{
            try {
                bufferedReader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        // Print Description
        for (LocalDeviceInfo devicesInfo :devicesInfos)
        {
            System.out.print("✅");
            System.out.println("IP : "+devicesInfo.getIp());
            System.out.println("Mac : "+devicesInfo.getMacAddress());
        }

Android のすべてのデバイス (IP アドレスと Mac アドレス) を正確にスキャンするにはどうすればよいですか。


4

2 に答える 2