Save ifconfig to variables

3

Would it be possible to run the ifconfig command and save the result to variables (eg ip, netmask etc.) in Java?

    
asked by anonymous 15.05.2017 / 14:47

1 answer

0

For those who have doubts, my code looks like this:

@RequestMapping("/conexaoWireless")
public ResponseEntity<ConexaoWirelessVO> informacoesWireless() throws Exception {

    String interfaces = "";

    Process p = Runtime.getRuntime().exec("ifconfig wlp2s0");
    p.waitFor();

    BufferedReader readerIfconfig = new BufferedReader(new InputStreamReader(p.getInputStream()));

    String linha = "";

    while ((linha = readerIfconfig.readLine())!= null) {
        interfaces += linha;
    }

    Process r = Runtime.getRuntime().exec("iwconfig wlp2s0");
    r.waitFor();

    BufferedReader readerIwconfig = new BufferedReader(new InputStreamReader(r.getInputStream()));

    linha = "";

    while ((linha = readerIwconfig.readLine())!= null) {
        interfaces += linha;
    }


    ConexaoWirelessVO vo = new ConexaoWirelessVO();
    vo.setNomeInterface(interfaces.split(" ")[0]);
    vo.setEnderecoIp(interfaces.substring((interfaces.indexOf("inet addr:")+10), (interfaces.indexOf("inet addr:")+26)).split(" ")[0].trim());
    vo.setMascaraRede(interfaces.substring((interfaces.indexOf("Mask:")+5), (interfaces.indexOf("Mask:")+21)).split(" ")[0].trim());
    vo.setEnderecoMac(interfaces.substring((interfaces.indexOf("HWaddr ")+7), (interfaces.indexOf("HWaddr")+25)).split(" ")[0].trim());
    vo.setPacotesRecebidos(interfaces.substring((interfaces.indexOf("RX packets")+11), (interfaces.indexOf("RX packets")+20)).split(" ")[0].trim());
    vo.setPacotesTransferidos(interfaces.substring((interfaces.indexOf("TX packets")+11), (interfaces.indexOf("TX packets")+20)).split(" ")[0].trim());
    vo.setBytesRecebidos(interfaces.substring((interfaces.indexOf("RX bytes")+9), (interfaces.indexOf("RX bytes")+30)).split("\)")[0].trim()+")");
    vo.setBytesTransferidos(interfaces.substring((interfaces.indexOf("TX bytes")+9), (interfaces.indexOf("TX bytes")+30)).split("\)")[0].trim()+")");
    vo.setSsid(interfaces.substring((interfaces.indexOf("ESSID:")+6), (interfaces.indexOf("ESSID:")+30)).split(" ")[0].trim());
    vo.setEnderecoApMac(interfaces.substring((interfaces.indexOf("Access Point: ")+14), (interfaces.indexOf("Access Point: ")+40)).split(" ")[0].trim());
    vo.setBitrate(interfaces.substring((interfaces.indexOf("Bit Rate=")+9), (interfaces.indexOf("Bit Rate=")+20)).split(" ")[0].trim()+" Mb/s");
    vo.setForcaSinal(interfaces.substring((interfaces.indexOf("Signal level=")+13), (interfaces.indexOf("Signal level=")+30)).split(" ")[0].trim()+" dBm");
    vo.setTaxaTransferencia(interfaces.substring((interfaces.indexOf("Tx-Power=")+9), (interfaces.indexOf("Tx-Power=")+30)).split(" ")[0].trim()+" dBm");
    vo.setFrequencia(interfaces.substring((interfaces.indexOf("Frequency:")+10), (interfaces.indexOf("Frequency:")+30)).split(" ")[0].trim()+" GHz");
    vo.setQualidadeLink(interfaces.substring((interfaces.indexOf("Link Quality=")+13), (interfaces.indexOf("Link Quality=")+15)).split(" ")[0].trim());

    return new ResponseEntity<ConexaoWirelessVO>(vo , HttpStatus.OK);
}
    
17.05.2017 / 20:10