Java/Network Protocol/NetworkInterface

Материал из Java эксперт
Перейти к: навигация, поиск

An updated version of the ListNets program that uses the NetworkInterface enhancements

   <source lang="java">

import java.io.Console; import java.net.InetAddress; import java.net.InterfaceAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.util.Arrays; import java.util.Collections; import java.util.Enumeration; import java.util.List; public class Main {

 public static void main(String args[]) throws SocketException {
   Enumeration<NetworkInterface> nets = NetworkInterface.getNetworkInterfaces();
   for (NetworkInterface netint : Collections.list(nets)) {
     displayInterfaceInformation(netint);
   }
 }
 private static void displayInterfaceInformation(NetworkInterface netint) throws SocketException {
   System.out.printf("Display name: %s%n", netint.getDisplayName());
   System.out.printf("Name: %s%n", netint.getName());
   Enumeration<InetAddress> inetAddresses = netint.getInetAddresses();
   for (InetAddress inetAddress : Collections.list(inetAddresses)) {
     System.out.printf("InetAddress: %s%n", inetAddress);
   }
   System.out.printf("Parent: %s%n", netint.getParent());
   System.out.printf("Up? %s%n", netint.isUp());
   System.out.printf("Loopback? %s%n", netint.isLoopback());
   System.out.printf("PointToPoint? %s%n", netint.isPointToPoint());
   System.out.printf("Supports multicast? %s%n", netint.isVirtual());
   System.out.printf("Virtual? %s%n", netint.isVirtual());
   System.out.printf("Hardware address: %s%n", Arrays.toString(netint.getHardwareAddress()));
   System.out.printf("MTU: %s%n", netint.getMTU());
   List<InterfaceAddress> interfaceAddresses = netint.getInterfaceAddresses();
   for (InterfaceAddress addr : interfaceAddresses) {
     System.out.printf("InterfaceAddress: %s%n", addr.getAddress());
   }
   System.out.printf("%n");
   Enumeration<NetworkInterface> subInterfaces = netint.getSubInterfaces();
   for (NetworkInterface networkInterface : Collections.list(subInterfaces)) {
     System.out.printf("%nSubInterface%n");
     displayInterfaceInformation(networkInterface);
   }
   System.out.printf("%n");
 }

}

 </source>
   
  
 
  



Extract network card address with java.net.NetworkInterface

   <source lang="java">

import java.net.NetworkInterface; import java.net.SocketException; import java.util.Arrays; import java.util.Enumeration; public class Main {

 public static void main(String args[]) throws SocketException {
   Enumeration<NetworkInterface> nets = NetworkInterface
       .getNetworkInterfaces();
   while (nets.hasMoreElements()) {
     NetworkInterface netint = nets.nextElement();
     System.out.println("Display name: " + netint.getDisplayName());
     System.out.println("Hardware address: "
         + Arrays.toString(netint.getHardwareAddress()));
   }
 }

}

 </source>
   
  
 
  



Get MAC address of a host: java.net.NetworkInterface.getHardwareAddress().

   <source lang="java">

import java.net.InetAddress; import java.net.NetworkInterface; public class Main {

 public static void main(String[] args) throws Exception {
   InetAddress address = InetAddress.getLocalHost();
   NetworkInterface ni = NetworkInterface.getByInetAddress(address);
   byte[] mac = ni.getHardwareAddress();
   for (int i = 0; i < mac.length; i++) {
     System.out.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : "");
   }
 }

}


 </source>
   
  
 
  



List Network Interfaces

   <source lang="java">

import java.net.NetworkInterface; import java.util.Enumeration; public class Main {

 static public void main(String args[]) throws Exception {
   Enumeration interfaces = NetworkInterface.getNetworkInterfaces();
   while (interfaces.hasMoreElements()) {
     NetworkInterface ni = (NetworkInterface) interfaces.nextElement();
     System.out.println(ni);
   }
 }

}

 </source>
   
  
 
  



Programmatic Access to Network Parameters

   <source lang="java">

import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.util.Collections; import java.util.Enumeration; public class Main {

 public static void main(String args[]) throws SocketException {
   Enumeration<NetworkInterface> nets = NetworkInterface.getNetworkInterfaces();
   for (NetworkInterface netint : Collections.list(nets)) {
     displayInterfaceInformation(netint);
   }
 }
 private static void displayInterfaceInformation(NetworkInterface netint) throws SocketException {
   System.out.printf("Display name: %s%n", netint.getDisplayName());
   System.out.printf("Name: %s%n", netint.getName());
   Enumeration<InetAddress> inetAddresses = netint.getInetAddresses();
   for (InetAddress inetAddress : Collections.list(inetAddresses)) {
     System.out.printf("InetAddress: %s%n", inetAddress);
   }
   System.out.printf("%n");
 }

}

 </source>
   
  
 
  



Report By Name

   <source lang="java">

import java.net.NetworkInterface; public class Main {

 static public void main(String args[]) throws Exception {
   NetworkInterface ni = NetworkInterface.getByName(args[0]);
   System.out.println(ni);
 }

}

 </source>