2017-03-25 8 views
0

Ich habe einen Code geschrieben, der "arp -a" Daten in Notepad-Datei speichert. Das Problem ist, dass diese Ausgabe wie eine einzelne Zeichenfolge kommt, aber ich möchte die arp-Cache-Tabelle im Zeilen- und Spaltenformat anzeigen (wie die meisten Netzwerküberwachungstools). Ich brauche einen Weg zu Holen Sie sich die Arp-Tabelle in Zeilen und Spalten, damit ich diese Datenstruktur verwenden kann, um weitere Aufgaben auszuführen. Im Folgenden finden Sie ich einige Code kam durch:Parsing arp -a Ausgabe in Zeilen und Spalten in Java

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); 
    } 
    ... 
} 

ich das ausgegeben werden soll, wie etwa wie folgt aussehen:

expected arp table output

Antwort

1

eine Java-Klasse erstellen, die die Struktur, die Sie repräsentiert müssen. Etwas wie folgt aus:

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

    // getters and setters 
} 

Wenn Sie laufen arp -a (this question viele Möglichkeiten hat, von der Verwendung eines Drittanbieter-Bibliothek, um den Befehl auszuführen und die Ausgabe Parsen), brauchen Sie nur ein neues ArpEntry Objekt erstellen jeden arp-Eintrag und legen Sie seine Eigenschaften fest, um sie für weitere Aufgaben verfügbar zu machen, die Sie benötigen.