Javaコードを介してコンピューターのIPアドレスとMACアドレスのリストが必要なソフトウェアを開発しています。IPアドレスとMACアドレスのリストを取得する方法はありますか?
ありがとう
Javaコードを介してコンピューターのIPアドレスとMACアドレスのリストが必要なソフトウェアを開発しています。IPアドレスとMACアドレスのリストを取得する方法はありますか?
ありがとう
JDK 1.6 以降、Java 開発者は NetworkInterface クラスを介してネットワーク カードの詳細にアクセスできます。
InetAddress ip;
ip = InetAddress.getLocalHost();
System.out.println("Current IP address : " + ip.getHostAddress());
NetworkInterface network = NetworkInterface.getByInetAddress(ip);
byte[] mac = network.getHardwareAddress();
System.out.print("Current MAC address : ");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < mac.length; i++) {
sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));
}
System.out.println(sb.toString());
複数の IP アドレスの場合:
java.util.Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces();
en.hasMoreElements(); ) {
NetworkInterface iface = en.nextElement();
List<InterfaceAddress> addrs = iface.getInterfaceAddresses();
//For each network interfaces iterate through each ip address
for(InterfaceAddress addr : addrs) {
ip = addr.getAddress();
//Process the IP ...
Javaプログラムからコマンドを実行するサンプルコード、
Process p;
String cmd="ifconfig-a";
p = Runtime.getRuntime().exec(cmd);
BufferedReader br = new BufferedReader(
new InputStreamReader(p.getInputStream()));
while ((s = br.readLine()) != null)
System.out.println("line: " + s);
p.waitFor();
System.out.println ("exit: " + p.exitValue());
p.destroy();
出力:
line: eth0 Link encap:Ethernet HWaddr 00:13:D3:DE:5A:A4 --->MAC address in linux