2017-02-20 26 views
1

Я пытаюсь подключить локальную сеть от 192.168.1.0 до 192.168.1.255 на 5000 портах, а плата Arduino также подключена к сети с портом 5000. У меня есть MAC-адрес платы и вы пытаетесь найти IP-адрес. это мой кодPinging всей сети, чтобы найти устройства

static void pingLocal() { 
    for (int i = 0; i <= 255; i++) { 
     ping("192.168.1." + i + ":5000"); 
    } 
} 

private static void ping(String url) { 
    try { 
     Process mIpAddrProcess = Runtime.getRuntime().exec("/system/bin/ping -c 1 " + url); 
     int mExitValue = mIpAddrProcess.waitFor(); 
     System.out.println(" mExitValue " + mExitValue); 
     if (mExitValue == 0) { 
      Log.d("log", "true"); 
     } else { 
      Log.d("log", "false"); 
     } 
    } catch (IOException | InterruptedException e) { 
     e.printStackTrace(); 
    } 
} 

static String getIPFromArpCache(String mac) { 
    if (mac == null) 
     return null; 
    BufferedReader br = null; 
    try { 
     br = new BufferedReader(new FileReader("/proc/net/arp")); 
     String line; 
     while ((line = br.readLine()) != null) { 
      Log.d("line", line); 
      String[] splitted = line.split(" +"); 
      if (splitted.length >= 4 && mac.equals(splitted[3])) { 
       String ip = splitted[0]; 
       if (ip.split(".").length == 4) { 
        return ip; 
       } else { 
        return null; 
       } 
      } 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } finally { 
     try { 
      assert br != null; 
      br.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
    return null; 
} 

и это результат

02-20 19:57:07.465 12103-12103/ir.shafadoc.handset D/line: IP address  HW type  Flags  HW address   Mask  Device 
02-20 19:57:07.466 12103-12103/ir.shafadoc.handset D/line: 192.168.1.33  0x1   0x0   00:00:00:00:00:00  *  wlan0 
02-20 19:57:07.466 12103-12103/ir.shafadoc.handset D/line: 192.168.1.26  0x1   0x0   00:00:00:00:00:00  *  wlan0 
02-20 19:57:07.467 12103-12103/ir.shafadoc.handset D/line: 192.168.1.19  0x1   0x0   00:00:00:00:00:00  *  wlan0 
02-20 19:57:07.467 12103-12103/ir.shafadoc.handset D/line: 192.168.1.12  0x1   0x0   00:00:00:00:00:00  *  wlan0 
02-20 19:57:07.467 12103-12103/ir.shafadoc.handset D/line: 192.168.1.31  0x1   0x0   00:00:00:00:00:00  *  wlan0 
02-20 19:57:07.468 12103-12103/ir.shafadoc.handset D/line: 192.168.1.24  0x1   0x0   00:00:00:00:00:00  *  wlan0 
02-20 19:57:07.468 12103-12103/ir.shafadoc.handset D/line: 192.168.1.17  0x1   0x0   00:00:00:00:00:00  *  wlan0 
02-20 19:57:07.469 12103-12103/ir.shafadoc.handset D/line: 192.168.1.10  0x1   0x0   00:00:00:00:00:00  *  wlan0 
02-20 19:57:07.470 12103-12103/ir.shafadoc.handset D/line: 192.168.1.29  0x1   0x0   00:00:00:00:00:00  *  wlan0 
02-20 19:57:07.470 12103-12103/ir.shafadoc.handset D/line: 192.168.1.22  0x1   0x0   00:00:00:00:00:00  *  wlan0 
02-20 19:57:07.470 12103-12103/ir.shafadoc.handset D/line: 192.168.1.15  0x1   0x0   00:00:00:00:00:00  *  wlan0 
02-20 19:57:07.471 12103-12103/ir.shafadoc.handset D/line: 192.168.1.8  0x1   0x0   00:00:00:00:00:00  *  wlan0 
02-20 19:57:07.471 12103-12103/ir.shafadoc.handset D/line: 192.168.1.1  0x1   0x2   c0:a0:bb:9a:e4:ad  *  wlan0 
02-20 19:57:07.472 12103-12103/ir.shafadoc.handset D/line: 192.168.1.27  0x1   0x0   00:00:00:00:00:00  *  wlan0 
02-20 19:57:07.472 12103-12103/ir.shafadoc.handset D/line: 192.168.1.20  0x1   0x0   00:00:00:00:00:00  *  wlan0 
02-20 19:57:07.472 12103-12103/ir.shafadoc.handset D/line: 192.168.1.13  0x1   0x0   00:00:00:00:00:00  *  wlan0 
02-20 19:57:07.473 12103-12103/ir.shafadoc.handset D/line: 192.168.1.32  0x1   0x0   00:00:00:00:00:00  *  wlan0 
02-20 19:57:07.473 12103-12103/ir.shafadoc.handset D/line: 192.168.1.25  0x1   0x0   00:00:00:00:00:00  *  wlan0 
02-20 19:57:07.473 12103-12103/ir.shafadoc.handset D/line: 192.168.1.18  0x1   0x0   00:00:00:00:00:00  *  wlan0 
02-20 19:57:07.474 12103-12103/ir.shafadoc.handset D/line: 192.168.1.11  0x1   0x0   00:00:00:00:00:00  *  wlan0 
02-20 19:57:07.474 12103-12103/ir.shafadoc.handset D/line: 192.168.1.30  0x1   0x0   00:00:00:00:00:00  *  wlan0 
02-20 19:57:07.475 12103-12103/ir.shafadoc.handset D/line: 192.168.1.23  0x1   0x0   00:00:00:00:00:00  *  wlan0 
02-20 19:57:07.475 12103-12103/ir.shafadoc.handset D/line: 192.168.1.16  0x1   0x0   00:00:00:00:00:00  *  wlan0 
02-20 19:57:07.475 12103-12103/ir.shafadoc.handset D/line: 192.168.1.9  0x1   0x0   00:00:00:00:00:00  *  wlan0 
02-20 19:57:07.476 12103-12103/ir.shafadoc.handset D/line: 192.168.1.28  0x1   0x0   00:00:00:00:00:00  *  wlan0 
02-20 19:57:07.476 12103-12103/ir.shafadoc.handset D/line: 192.168.1.21  0x1   0x0   00:00:00:00:00:00  *  wlan0 
02-20 19:57:07.477 12103-12103/ir.shafadoc.handset D/line: 192.168.1.14  0x1   0x0   00:00:00:00:00:00  *  wlan0 

, как вы можете видеть только модем имеет MAC-адрес в кэше ARP. что не так? как я могу найти сеть и найти IP-адрес от Mac?

+0

Не ясно, о чем вы спрашиваете. Что вы ожидаете? – zed

+0

Мои доски Адрес Mac должен появиться в кеш-кеш @zed –

+0

Какой IP-адрес? Он появляется в этом журнале? – zed

ответ

1

Я нашел этот метод пинг сети и он работает совершенное

if (InetAddress.getByName(host).isReachable(timeout)) { 
     System.out.println(host + " is reachable"); 
}