Jpcap包的学习笔记(三)获取网络接口设备[网卡设备]
来源:互联网 发布:淘宝哪里交水电费 编辑:程序博客网 时间:2024/05/21 10:39
获取网络接口设备[网卡设备]
想要捕捉网络数据包,首先要得到你电脑了的网络接口设备,也就是所谓的网卡设备.Jpcap包向我们提供了这一个类方法[静态方法]:JpcapCaptor.getDeviceList( ) ,从字面见就知道返回的是网络接口设备的列表,NetworkInterface类,网络接口类。其封装了相应网络设口信息,比如:网卡名,网卡描述,网卡所处的数据链路层的名称,描述等等。
简单的应用代码如下:
/**
* @(#)GetDevices.java
* 显示网络接口设备信息的Demo
* @author scholar_ii
* @version 1.00 2005/12/16
*/
import jpcap.*;
public class GetDevices
{
public GetDevices()
{
}
public static void ShowNeworkInterfaceDevices()
{
//获得网卡设备的实例列表
NetworkInterface[] devices = JpcapCaptor.getDeviceList();
//循环输出全部网卡设备对象相应的信息
for (int i = 0; i < devices.length; i++)
{ //设备号 ,网卡名,网卡描述
System.out.println(i+": "+devices[i].name + "(" + devices[i].description+")");
//网卡所处数据链路层的名称与其描述
System.out.println(" datalink: "+devices[i].datalink_name + "(" + devices[i].datalink_description+")");
//网卡MAC地址
System.out.print(" MAC address:");
for (byte b : devices[i].mac_address)//JDK1.5以上版本的for语法的加强变种[循环遍历]
//转化为十六进制的字串符表示
System.out.print(Integer.toHexString(b&0xff) + ":");
System.out.println(); //print out its IP address, subnet mask and broadcast address
//输出网卡IP地址 IPV4 IPV6 子网地址 扩播地址
for (NetworkInterfaceAddress a : devices[i].addresses)
System.out.println(" address:"+a.address + " " + a.subnet + " "+ a.broadcast);}
}
public static void main(String[] args) {
ShowNeworkInterfaceDevices();
}
}
可能的运行结果如下(WindowsXP下):
0: /Device/NPF_GenericDialupAdapter(Adapter for generic dialup and VPN capture)
datalink: EN10MB(Ethernet)
MAC address:0:0:0:0:0:0:
1: /Device/NPF_{B7CE211D-CEA5-4010-9A39-B833BBEC772D}(Realtek RTL8139/810x Family Fast Ethernet NIC (Microsoft's Packet Scheduler) )
datalink: EN10MB(Ethernet)
MAC address:0:e0:4c:87:a0:5a:
address:/192.168.1.102 /255.255.255.0 /255.255.255.255
注意:0号网卡是一个操作系统的虚拟网卡(有时在上面代码前有图形界面代码如JFrame 之类的代码)可能0号网卡得不到,我的实验结果是这样的在2000下不管怎样都可以得到0与网卡,XP下有图形代码的影响就得不到了。
- Jpcap包的学习笔记(三)获取网络接口设备[网卡设备]
- Jpcap包的学习笔记(四)打开网络接口设备[网卡设备]
- Jpcap学习笔记1--获取网卡信息
- Jpcap包的学习笔记(八)如何使用Jpcap 包实现网络监听(下部)
- Jpcap包的学习笔记(二)Jpcap的功能简介
- Jpcap包的学习笔记(五)如何使用JpcapCaptor实例来捕捉网络数据包(上部)
- Jpcap包的学习笔记(一)入门笔记
- 获取支持SRIOV的网络接口设备信息
- 《Linux设备设备驱动程序(第三版)》学习笔记之三:sleepy设备的使用
- 《Linux设备设备驱动程序(第三版)》学习笔记之三:sleepy设备的使用
- jpcap网络抓包
- Android 获取设备网卡信息
- GDI(图形设备接口)编程(一)设备环境的获取
- 根据网卡设备名获取网卡型号
- IMS网络中设备间的接口
- 获取网络包到达网卡的时间
- 获取网络包到达网卡的时间
- 学习《Linux设备模型浅析之设备篇》笔记(三)
- Ubuntu Tweak 0.2.4 Beta1
- 试验网站#1搜索引擎优化收录情况记录(断续运行)2007-12-16
- 关于灵活的共享数据库的设计随想(一)
- CSDN真是个不错的地方
- 试验网站#3搜索引擎优化收录情况记录2007-12-16
- Jpcap包的学习笔记(三)获取网络接口设备[网卡设备]
- 尝试在 Windows Server 2003 或 Windows XP 中安装大型 Windows Installer 程序包或大型 Windows Installer 修补程序包时出现错误消息:“Error 1718. File was rejecte
- 如何为linux内核打补丁
- 阿里巴巴DBA笔试题参考答案
- 《MFC深入浅出》学习笔记--------Win32 SDK 程序开发流程
- Wine v0.9.51 - Linux上运行Windows程序的平台
- 主题中的内容
- 初学JAVA何去何从(将登录进行到底--八次写登录页面的收获)
- 新劳动合同法对程序员的影响