【问题标题】:Parsing arp -a output into rows and columns in Java将 arp -a 输出解析为 Java 中的行和列
【发布时间】:2017-03-25 12:10:03
【问题描述】:

我编写了一个将“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);
    }
    ...
}

我希望输出看起来像这样:

【问题讨论】:

    标签: java data-structures arp


    【解决方案1】:

    创建一个代表您需要的结构的 Java 类。像这样的:

    public class ArpEntry {
       private String ip;
       private String mac;
    
       // getters and setters
    }
    

    当你运行arp -a时(this question有很多选项,从使用第三方库到执行命令和解析输出),你只需要为每个arp创建一个新的ArpEntryobject条目并设置其属性以使它们可用于执行您需要的任何其他任务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-03
      • 1970-01-01
      • 2021-06-11
      • 1970-01-01
      • 2014-12-14
      • 2019-11-23
      • 1970-01-01
      相关资源
      最近更新 更多