Список устройств в локальной сети с помощью ping

Я пытаюсь создать функцию, которая выводит список всех подключенных устройств в локальной сети. Что я делаю, так это проверяю любой адрес из адресного пространства от x.x.x.0 до x.x.x.255, но, похоже, он работает неправильно. Может ли кто-нибудь объяснить или расширить мой код как-то? Я получаю ответ от телефона (10.0.0.17) и шлюза по умолчанию (10.0.0.138). Последнее даже не должно быть (на самом деле, я не знаю, что такое шлюз по умолчанию, но игнорирую это). Я пропускаю IP с этого компьютера, хотя.

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));

            // 50ms Timeout for the "ping"
            if (currentPingAddr.isReachable(50)) {
                if(currentPingAddr.getHostAddress() != YourPhoneIPAddress){
                    ret.add(currentPingAddr);

                }
            }
        } catch (UnknownHostException ex) {
        } catch (IOException ex) {
        }

        LoopCurrentIP++;
    }
    return ret;
}

Ответы на вопрос(1)

Ваш ответ на вопрос