su suggerimento di un altro utente questo comando da quello che voglio:
ifconfig -a | grep -Eo "^[a-z]+[0-9]*"

il problema è che invece nel metodo non restituisce nulla:
codice:
    public static void discover() throws IOException {
        ArrayList<String> list = new ArrayList<String>();
        Process p = Runtime.getRuntime().exec("ifconfig -a | grep -Eo \"^[a-z]+[0-9]*\"");
        InputStream input = p.getInputStream();
        InputStreamReader reader = new InputStreamReader(input);
        BufferedReader br = new BufferedReader(reader);
        String line;
        while ((line = br.readLine()) != null) {
            list.add(line);
        }
        System.out.println(list);
        br.close();
        reader.close();
        input.close();
    }
ovviamente ho delle prove e il solo comando ifconfig -a funziona.
penso quindi sia un problema di pipe.
c'è un modo per fargli eseguire tutto il comando composto??