在Java中将arp-输出解析为行和列

在Java中将arp-输出解析为行和列,java,data-structures,arp,Java,Data Structures,Arp,我写了一段代码,将arp-a数据保存到记事本文件中。问题是这个输出像一个字符串,但我想像大多数网络监控工具一样,将arp缓存表显示为行和列格式。我需要一种方法来获取行和列中的arp表,这样我就可以使用该数据结构来执行进一步的任务。下面是我通过的一些代码: public String getMacAddress() throws SocketException, UnknownHostException{ NetworkInterface netint = NetworkInterface

我写了一段代码,将arp-a数据保存到记事本文件中。问题是这个输出像一个字符串,但我想像大多数网络监控工具一样,将arp缓存表显示为行和列格式。我需要一种方法来获取行和列中的arp表,这样我就可以使用该数据结构来执行进一步的任务。下面是我通过的一些代码:

public String getMacAddress() throws SocketException, UnknownHostException{
    NetworkInterface netint = NetworkInterface.getByInetAddress(InetAddress.getLocalHost());
    StringBuilder sb = new StringBuilder();

    byte [] mac=netint.getHardwareAddress();
    for (int i = 0; i < mac.length; i++) {
        sb.append(String.format("%02X%s", mac[i],""));      
    }
    return sb.toString();
}
public  StringBuilder IPtoHex(String IP){
    String [] address  = IP.replace(".", ":").split(":");
    StringBuilder str = new StringBuilder();
    for(String s : address){
        s=Integer.toHexString(Integer.parseInt(s));
        s=(s.length()<2)?"0"+s:s;
        str.append(s);
    }
    ...
}
我希望输出像这样:

public class ArpEntry {
   private String ip;
   private String mac;

   // getters and setters
}

创建一个表示所需结构的Java类。大概是这样的:

public class ArpEntry {
   private String ip;
   private String mac;

   // getters and setters
}
当您运行arp-a时,有很多选项,从使用第三方库到执行命令和解析输出,您只需为每个arp条目创建一个新的ArpEntryobject,并设置其属性,使其可用于执行您需要的任何进一步任务