2013-12-09 2 views
1

Я разработал код, который позволяет мне пинговать ряд IP-адресов. Результаты моего ping sweep определяют, какие локальные машины достижимы, если доступно там имя хоста, а также если они недоступны.Извлечение MAC-адреса из развертки PING

У меня возникают проблемы с получением MAC-адреса достижимых IP-адресов. Кто-нибудь получил решение для этого?

package networkping; 

import java.io.IOException; 
import java.net.InetAddress; 

/** 
* 
* @author Learner 
*/ 
public class Networkping { 


public static void main(String[] args) throws IOException { 

    InetAddress localhost = InetAddress.getLocalHost(); 
    // this code assumes IPv4 is used 
    byte[] ip = localhost.getAddress(); 

    for (int i = 1; i <= 254; i++) 
    { 
     ip[3] = (byte)i; 
     InetAddress address = InetAddress.getByAddress(ip); 
     if (address.isReachable(1000)) 
     { 
      System.out.println(address + " Address is reachable"); 

     } 
     else if (!address.getHostAddress().equals(address.getHostName())) 
     { 
      System.out.println(address + " Address is known in a DNS lookup and is reachable "); 
     } 
     else 
     { 
      System.out.println(address + " Address is unreachable"); 
     } 
    } 

} 

Благодаря

+1

Java к сожалению, не может сделать это без JNI, и в зависимости от сетевой конфигурации/ОС, perha ps совсем нет. – hexafraction

+0

@hexafraction Спасибо за ваш комментарий и ввод, но я даю это как задание, и репетитор уверяет меня, что можно сделать – user3071069

+0

@ user3071069 Посмотрите на ссылку в моем ответе. Это возможно, но вам нужно пройти круговым путем. –

ответ

1

Вы не можете сделать это только с помощью Java.

Есть два варианта:

  • Execute другой процесс через Java и общаться через стандартный вывод с оригинальным приложением Java. Например, такой процесс составляет ARP.
  • использование JNI как предложено в комментариях.

Посмотрите также на следующие ресурсы/ответы:

Второй ресурс даже реализованный способ вызова ARP имени private String getMac(String ip)

Смежные вопросы