資源簡介
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
- 上一篇:水果忍者java版
- 下一篇:Android 炸彈人游戲
評論
共有 條評論