Jpcap包的学习笔记(三)获取网络接口设备[网卡设备]_jpcap 获取网口-程序员宅基地

技术标签: 网络  import  string  vpn  microsoft  图形  

 获取网络接口设备[网卡设备]

想要捕捉网络数据包,首先要得到你电脑了的网络接口设备,也就是所谓的网卡设备.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下有图形代码的影响就得不到了。

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/SCHOLAR_II/article/details/1941600

智能推荐

人工智能之自动驾驶-程序员宅基地

文章浏览阅读727次。随着深度学习技术的崛起、人工智能的备受关注,自动驾驶,作为AI中备受关注的重要落脚点,也被炒的火热,更让人充满了幻想。1.1 自动驾驶的概念自动驾驶,也常被人称作无人驾驶、无人车等,但这几个词的表述其实是有所区别的,英文里常见的表述有autopilot,automatic driving,self-driving,driveless等,这里不作科普。关于自动驾驶,在概念上业界有着明确的等级划分,..._人工智能自动驾驶汽车

宝塔安装redis-程序员宅基地

文章浏览阅读1.4k次。去服务器提供商那里,开放相应的Redis端口,配置安全组(Redis使用的是6379端口,就开放6379端口),即可。在面板的安全配置里,开放相应的Redis端口(Redis使用的是6379端口,就开放6379端口)。3. 在安装的PHP中安装Redis扩展。在宝塔面板中安装Redis。..._宝塔安装redis

Nginx —— 检查配置文件nginx.conf的正确性命令(-t)_nginx -t-程序员宅基地

文章浏览阅读6.5w次,点赞5次,收藏12次。检查配置文件 nginx.conf 文件的正确性命令: 1、执行测试命令:[root@J01051386 conf]# /usr/local/nginx/conf/nginx.conf.bak -t 2、出错如下所示:/usr/local/nginx/conf/nginx.conf.bak: line 1: worker_processes: command no..._nginx -t

样本不平衡问题总结-程序员宅基地

文章浏览阅读4.7k次,点赞2次,收藏52次。一、样本不平衡介绍1. 样本不平衡现象:训练数据中各种类别样本数量差别过大,导致训练的模型对各个类别预测或分类的精度偏差比较大,比如电池故障预测,故障的数据量远远少于正常数据量,但是这些故障数据反而更重要。2. 样本不平衡影响:训练样本不平衡,那么模型更容易偏向样本量多的类别,因为模型把样本量的大的类别预测对,整体精度也会高,就不会在意少量样本类别,但这是不对的。即模型会学习到按照样本类别比例的先验信息,而解决样本不平衡能解决学习到这种先验信息,能从本质正确的判断预测不同类别。举个栗子: 比如模型_样本不平衡

[RK3399] + [Android 9.0] MIPI屏_rk3399刷机包-程序员宅基地

文章浏览阅读1.7k次,点赞5次,收藏16次。[RK3399] + [Android 9.0] MIPI屏MIPI接口背光控制电路设备树背光PWM结点dsi屏参通道和LOGO驱动部分MIPI接口背光控制电路设备树背光PWM结点backlight: backlight { status = "okay"; enable-gpios = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>; compatible = "pwm-backlight"; pwms = <&pwm0_rk3399刷机包

PMM(Percona Monitoring and Management)安装部署与优化-程序员宅基地

文章浏览阅读1.2k次。导读:作者:知数堂学员-邓志航;MySQL DBA,天生的MySQL爱好者,热衷于为他人解决问题,善于总结和分享。对数据平台构建和排查疑难问题有非常浓厚的兴趣简介:PMM...

随便推点

WebSocket使用中Stomp Client连接报ERROR CODE 200的解决办法-程序员宅基地

文章浏览阅读1k次。最近在做一个WebSocket项目,后台使用了Stomp协议的WebSocketConfigurer,但是前端在测试的时候,发现一个很奇怪的问题:本地的测试代码,最初我使用了Java+SockJS实现:@Configuration@EnableWebSocketMessageBrokerpublic class WebSocketStompConfig implements W..._android websocket invalid status code received: 200 status line

LeetCode:61. Rotate List 旋转链表(C语言)_c语言 列表旋转-程序员宅基地

文章浏览阅读187次。题目描述:给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。示例 1:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋转 2 步: 4-&..._c语言 列表旋转

css按钮居中_Web 技术:CSS最小和最大(宽度/高度)知识点及优缺点-程序员宅基地

文章浏览阅读251次。通常,我们希望限制元素相对于其父元素的宽度,同时使其具有动态性。因此,有一个基础宽度或高度的能力,使其扩展的基础上,可用的空间。比如说,我们有一个按钮,它的宽度应该是最小的,不应该低于它的宽度。这就是最大和最小属性变得方便的地方。在本文中,我们将详细介绍CSS的最大和最小宽度和高度属性,并使用可能的用例和技巧详细解释每一个属性。width 属性首先要讨论的是与宽度相关的属性。我们有min..._css中position: fixed居中且有最小高度和最大高度

selenium ctrl+F5 强行硬刷新无效,解决彻底刷新方法!_selenium输入f5刷新-程序员宅基地

文章浏览阅读1.2k次。理论上这段代码,可以硬刷新,但是实际执行却无效,这应该是chromedriver的问题。可以使用间接方法强行刷新,这条命令可以忽略缓存刷新。_selenium输入f5刷新

二进制转十进制 8421运算法_0011二进制 17-程序员宅基地

文章浏览阅读2.6k次。十进制二进制10001200104010081000160001 0000320010 0000640100 00001281000 00002560001 0000 0000我发现除 1之外十进制数值都是2的次方2^1 = 22^2 = 42^3 = 816 = 2 ^ 416 转换二进制 1000017 转换二进制 17 > 16 < 32 则 17 - 16 = 1{16, 1} =...._0011二进制 17

java 如何向前台传值_SpringMVC怎么向前台JSP页面传值?-程序员宅基地

文章浏览阅读211次。SpringMVC是通过controller给jsp传值的。在springmvc中的controller所对应的函数中,如果需要从*.jsp页面中获取数据,可以自行在函数括号中写,springmvc会自动封装传过来的。举例:1、Controller.java   两种形式都可以,但是第二种,jsp页面中的参数是personList1//列表@RequestMapping("/listAll")pu..._springmvc中如何将后台list传递给前台jsp

推荐文章

热门文章

相关标签