将 arp -a 输出解析为 Java 中的行和列
Parsing arp -a output into rows and columns in Java
我写了一个代码,可以将 "arp -a" 数据保存到记事本文件中。问题是这个输出就像一个字符串,但我想将 arp 缓存 table 显示为行和列格式(就像大多数网络监控工具一样)。我需要一种方法来 获取行和列中的 arp table 以便我可以使用该数据结构来执行进一步的任务。下面是我通过的一些代码:
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 class。像这样:
public class ArpEntry {
private String ip;
private String mac;
// getters and setters
}
当你运行 arp -a
(this question有很多选择,从使用第三方库到执行命令和解析输出),你只需要为每个 arp 条目创建一个新的 ArpEntry
对象并设置其属性以使其可用于执行您需要的任何进一步任务。
我写了一个代码,可以将 "arp -a" 数据保存到记事本文件中。问题是这个输出就像一个字符串,但我想将 arp 缓存 table 显示为行和列格式(就像大多数网络监控工具一样)。我需要一种方法来 获取行和列中的 arp table 以便我可以使用该数据结构来执行进一步的任务。下面是我通过的一些代码:
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 class。像这样:
public class ArpEntry {
private String ip;
private String mac;
// getters and setters
}
当你运行 arp -a
(this question有很多选择,从使用第三方库到执行命令和解析输出),你只需要为每个 arp 条目创建一个新的 ArpEntry
对象并设置其属性以使其可用于执行您需要的任何进一步任务。