用第三方java库获取MAX地址

获取MAC信息在JAVA中目前似乎不好办。
不过我看到了一个java库,感觉挺不错。先写上吧,谁研究了给我留个言,互相促进进步么;)
1)第三方JAVA库。(试一试这个:http://netresearch.ics.uci.edu/kfujii/jpcap/doc/index.html。在JAVA中支持RAW Socket,问题就好办了)
================
如果你想捕获Java程序中的网络包,那么你需要一些辅助工具,因为核心Java API不能访问底层的网络数据。但Jpcap是一种提供在Windows或UNIX系统上进行这种访问的Java API。

Jpcap不是一种纯粹的Java解决方案;它依赖本地库的使用。在Windows 或 UNIX上,你必须有必要的第三方库,分别是WinPcap或libpcap。

Jpcap的工作原理

Jpcap使用一个事件模型来让你处理包。首先你必须创建一个执行接口jpcap.JpcapHandler的类。

public class JpcapTip implements JpcapHandler {
      public void handlePacket(Packet packet){
          System.out.println(packet);
    }
}

为了捕获包,你需要告诉Jpcap你想用哪个网络设备来监听。API提供了jpcap.Jpcap.getDeviceList()方法以满足这一目的。 这个方法返回一列字符串,你可以象如下使用它:

String[] devices = Jpcap.getDeviceList();

 

一旦你有了一个设备名称的目录,你必须选取一个用来监听:

String deviceName = devices[0];

 

选择一个设备之后,通过Jpcap.openDevice()方法打开它。openDevice()方法需要四个参数:即将打开的设备名,从设备上 一次读取的最大字节数,说明是否将设备设为混杂模式的Boolean值,和以后调用processPacket()方法要使用到的超时值。

Jpcapjpcap = Jpcap.openDevice(deviceName, 1028, false, 10000);

 

openDevice ()方法将一个参数返回到用以捕获的Jpcap对象。既然有了Jpcap实例,你可以调用processPacket() 或loopPacket()开始监听了。这两种方式都带有两个参数:捕获的最大包数可以是-1(说明没有限制);执行JpcapHandler的一个类的 实例。

 

如果你调用processPacket(),那么Jpcap将一直捕获包,直到超过openDevice中规定的时限或达到了规定的最大包数。loopPacket()则将一直捕获包,直到达到最大包数,如果没有最大数限制,它将永远运行下去。就像下面这样调用:

jpcap.loopPacket(-1, new JpcapTip());

 

时间: 2024-09-21 22:24:17

用第三方java库获取MAX地址的相关文章

JAVA+Struts2获取服务器地址的方法_java

本文实例讲述了JAVA+Struts2获取服务器地址的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: HttpServletRequest request=ServletActionContext.getRequest();  String path=request.getRequestURI();  String actionPath=".."+path.substring(9);  //访问服务器所带有的参数信息  String queryInfo=reque

Java获取mac地址的方法_java

本文实例讲述了Java获取mac地址的方法.分享给大家供大家参考.具体如下: /* * GetMacAddress .java * * description:get Mac addreess * * @author hadeslee * * Created on 2007-9-27, 9:11:15 * * To change this template, choose Tools | Templates * and open the template in the editor. */ pa

JAVA获得域名IP地址的方法_java

本文实例讲述了JAVA获得域名IP地址的方法.分享给大家供大家参考.具体如下: import java.net.InetAddress; import java.net.UnknownHostException; public class TestInetAddress { InetAddress myIpAddress = null; InetAddress[] myServer = null; public static void main(String args[]) { TestInet

java实现根据ip地址获取地理位置_java

最近项目某个功能需要根据ip地址从第三方接口获取详细的地理位置,从网上找了很多例子,主要接口有新浪的,淘宝的,腾讯的.试了淘宝的,如果是数量级小的还可以,如果数量级达到上十万级就速度慢了,会导致系统崩溃.下面例子是新浪的,例子不是适合每个项目,需要改一下. /** ipSearchUrl=http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=(这是新浪的接口地址) 在项目中新浪的接口地址没有直接写死,而是去读属性文件. *

java怎么通过内存地址获取内存中的值

问题描述 java怎么通过内存地址获取内存中的值 最近用java开发了一个客户端程序.使用了windows消息机制与第三方系统交互. 第三方系统发过来的信息是一个内存地址.请问java能不能通过内存地址获取到值. 另,java能不能获取到一个Double类对象的内存地址,不是hashcode.

[Java] 利用xpdf库获取pdf文件的指定范围文本内容

[Java] 利用xpdf库获取pdf文件的指定范围文本内容 编写者 日期 关键词 郑昀@ultrapower 2005-8-2 Java PDF xpdf   概述 读取PDF文件的某一部分文本内容,可以使用开源项目xpdf. 从Java中调用xpdf,我们参照了<Java抽取Word,PDF的四种武器>文章最后提到的办法. 总而言之,调用xpdf十分简单,下面讲一下xpdf的配置问题. 系统基础环境要求 下面是对运行xpdf软件服务的计算机的要求: l         您可以从以下位置下载

java 系统自动获取ip地址和mac地址

问题描述 java 系统自动获取ip地址和mac地址 如何使用java代码自动获取计算机的ip地址和mac地址 求java代码 解决方案 public static String getMacAddressIP(String remotePcIP) { String str = ""; String macAddress = ""; try { Process pp = Runtime.getRuntime().exec("nbtstat -A "

如何用java程序获取优酷视频的真实地址,可以下载的?

问题描述 如何用java程序获取优酷视频的真实地址,可以下载的? 求大神指教,怎样用java代码实现获取优酷视频下载的链接地址,万分感谢 解决方案 获取优酷视频地址方法

java实现获取用户的MAC地址_java

方法一:将本机地址与局域网内其他机器区分开来 /** * 根据IP地址获取mac地址 * @param ipAddress 127.0.0.1 * @return * @throws SocketException * @throws UnknownHostException */ public static String getLocalMac(String ipAddress) throws SocketException, UnknownHostException { // TODO Au