• 大小: 881B
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2024-01-27
  • 语言: Java
  • 标签: jpcap  ping  java  

资源简介

java调用jpcap实现ping功能代码

资源截图

代码片段和文件信息

import java.net.InetAddress;

import jpcap.*;
import jpcap.packet.EthernetPacket;
import jpcap.packet.ICMPPacket;
import jpcap.packet.IPPacket;

class SendICMP
{
public static void main(String[] args) throws java.io.IOException{
NetworkInterface[] devices = JpcapCaptor.getDeviceList();
if(args.length<1){
System.out.println(“Usage: java SentICMP “);
for(int i=0;i System.out.println(i+“:“+devices[i].name+“(“+devices[i].description+“)“);
System.exit(0);
}
int index=Integer.parseInt(args[0]);
JpcapSender sender=JpcapSender.openDevice(devices[index]);

ICMPPacket p=new ICMPPacket();
p.type=ICMPPacket.ICMP_TSTAMP;
p.seq=1000;
p.id=999;
p.orig_timestamp=123;
p.trans_timestamp=456;
p.recv_timestamp=789;
p.setIPv4Parameter(0falsefalsefalse0falsefalsefalse01010101100IPPacket.IPPROTO_ICMP
InetAddress.getByName(“192.168.10.48“)InetAddress.getByName(“192.168.10.33“));
p.data=“data“.getBytes();

EthernetPacket ether=new EthernetPacket();
ether.frametype=EthernetPacket.ETHERTYPE_IP;
ether.src_mac=new byte[]{(byte)0(byte)1(byte)2(byte)3(byte)4(byte)5};
ether.dst_mac=new byte[]{(byte)0(byte)6(byte)7(byte)8(byte)9(byte)10};
p.datalink=ether;

//for(int i=0;i<10;i++)
sender.sendPacket(p);
  System.out.println(“send...“); 
        ICMPPacket rp= null; 
        while(true){ 
            rp=(ICMPPacket)captor.getPacket(); 
            if(rp==null){ 
             rp
                throw new IllegalArgumentException(“no rcv icmp echo reply“); 
            }else 
            { 
                System.out.println(“rcv icmp echo reply“); 
                return ; 
            } 
        } 
}
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1782  2007-02-28 10:27  SendICMP.java

----------- ---------  ---------- -----  ----

                 1782                    1


评论

共有 条评论