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();
}
}
1.4. 其他
java.net.NetworkInterface提供了api来访问网络接口的信息,不过都只是获取基本信息,没有提供对数据链路层的控制的api.而且java标准版本都没有提供对网络层以下的控制,需要使用第三方的API。
比较有名的是JPCAP。JPCAP调用wincap/libpcap,而给JAVA语言提供一个公共的 接口,从而实现了平台无关性。这个API提供了在数据链路层发送接收数据包的功能。如果需要了解更多,请参考JPCAP的相关技术文档。
分享到:
相关推荐
本demo是通过NetworkInterface和SharpPcap里面的MAC地址来匹配的,即同一个网口的MAC地址在NetworkInterface和SharpPcap里面都是相同的,通过MAC地址就可以找到SharpPcap里面的对应网口,从而去使用SharpPcap接口来...
Java中通过NetworkInterface获取主机地址和物理地址等;Java中通过NetworkInterface获取主机地址和物理地址等;Java中通过NetworkInterface获取主机地址和物理地址等
Telemecanique Interbus Network Interface Applications Guidepdf,Telemecanique Interbus Network Interface Applications Guide
Telemecanique DeviceNet Network Interface Applications Guidepdf,Telemecanique DeviceNet Network Interface Applications Guide
Telemecanique Fipio Network Interface Applications Guidepdf,Telemecanique Fipio Network Interface Applications Guide
No available network interface(解决方案).md
Telemecanique Modbus Plus Network Interface Applications Guidepdf,Telemecanique Modbus Plus Network Interface Applications Guide
Hamachi Network Interface虚拟网卡驱动程序,安装时请自选驱动,指定该文件即可,可以安装多块虚拟网卡,在用虚拟机和dynamips时特别有用
Oracle Solaris 8 Network Interface Guide-144
Telemecanique Advantys STB Standard Modbus Plus Network Interface Module Applications Guidepdf,Telemecanique Advantys STB Standard Modbus Plus Network Interface Module Applications Guide
本文将基于提供的文件信息,深入解析“AIX5.3 Switch Network Interface for eServer™ pSeries® High Performance Switch Guide”的核心知识点,包括其背景、关键功能以及技术细节。 ### AIX5.3与eServer pSeries...
### GE VersaMax Ethernet Network Interface Unit (NIU) User's Manual gfk1860a #### 知识点概述 本手册详细介绍了GE VersaMax Ethernet Network Interface Unit(NIU)的操作指南、安装步骤、配置方法以及故障...
Network Driver Interface Specification,即网络驱动接口规范
在不同操作系统下,获取MAC地址的方法各异,但使用JDK自带的`NetworkInterface`接口可以实现跨平台的通用解决方案。`NetworkInterface`接口在JDK1.4版本中就已经存在,不过其功能相对有限,自JDK1.6开始,增加了更多...
- 使用`IPInterfaceProperties`,可以通过`NetworkInterface.GetIPProperties()`获取到接口的IP配置信息,包括IPv4和IPv6的地址、子网掩码、默认网关等。 3. **判断是否有Internet连接** - 确保网络接口连接到...
在本文中,我们将深入探讨如何使用Java GUI(图形用户界面)来调用`NetworkInterface` API,以便在桌面应用程序中管理网络接口。首先,确保你已经安装了集成开发环境(IDE)如IntelliJ IDEA(简称IDEA)以及Java ...
java.net.NetworkInterface 类包装器。 用法 按名称获取网络接口: => (by-name "eth3") #<NetworkInterface> 获取网络接口列表作为枚举: => (network-interfaces) # 使用 EnumerationSeq 获取网络接口列表: ...