NetworkInterface的使用
1. java.net.NetworkInterface类的使用
1.3. java.net.NetworkInterface的方法。
NetworkInterface定义了很多获取网络接口信息的方法,其中很多是jdk1.6版本以后才加入进去的。主要有以下方法:
String displayName() 获取网络接口的显示名称
byte[] getHardwareAddress() 获取网络接口的物理地址,通常是MAC地址
int getMTU()返回此接口的最大传输单元(Maximum Transmission Unit,MTU)
String getName()获取此网络接口的名称
boolean isLoopback()返回网络接口是否是回送接口
boolean isPointToPoint()返回网络接口是否是点对点接口
boolean isUp()返回网络接口是否已经开启并运行
boolean isVirtual()返回此接口是否是虚拟接口(也称为子接口)。
下面的例子展示了如何获取本地网络接口以及显示其信息。
package org.dakiler.javanet.chapter1;import java.net.NetworkInterface;import java.util.Enumeration;public class Example6{ public static void main(String args[])throws Exception { Enumeration<NetworkInterface>e=NetworkInterface.getNetworkInterfaces(); while(e.hasMoreElements()) { NetworkInterface ni=e.nextElement(); System.out.println("displayname: "+ni.getDisplayName()); System.out.println("name: "+ni.getName()); System.out.println("MTU: "+ni.getMTU()); System.out.println("Loopback: "+ni.isLoopback()); System.out.println("Virtual: "+ni.isVirtual()); System.out.println("Up: "+ni.isUp()); System.out.println("PointToPoint: "+ni.isPointToPoint()); byte[]mac=ni.getHardwareAddress(); if(mac!=null) displayMac(mac); else System.out.println("mac is null"); System.out.println("-----"); } } public static void displayMac(byte[] mac) { for(int i=0;i<mac.length;i++) { byte b=mac[i]; int intValue=0; if(b>=0)intValue=b; else intValue=256+b; System.out.print(Integer.toHexString(intValue)); if(i!=mac.length-1) System.out.print("-"); } System.out.println(); } }