2017-03-25 5 views
0

"arp -a"データをメモ帳ファイルに保存するコードを記述しました。問題は、この出力は単一の文字列のようになりますが、ほとんどのネットワーク監視ツールと同様に、arpキャッシュテーブルを行と列の形式で表示したいと考えています。私は道を必要とする行と列のアルプテーブルを取得するので、私はそのデータ構造を使用してさらなるタスクを実行することができます。以下は、私が経由して来たいくつかのコードされていますJavaの行と列へのarp -a出力の解析

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

私は、出力は次のようなもののようになりたい:

expected arp table output

答えて

1

はあなたが必要とする構造を表すJavaクラスを作成します。このような何か:

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

    // getters and setters 
} 

あなたは(this questionは、サードパーティのライブラリを使用してからコマンドを実行し、出力を解析し、多くのオプションを持っている)arp -aを実行すると、あなただけのために新しいArpEntryオブジェクトを作成する必要がありますすべてのarpエントリを取得し、必要なタスクを実行できるようにプロパティを設定します。

関連する問題