知识大全 Java如何处理ICMP报文的收发

Posted 操作

篇首语:冲天香阵透长安,满城尽带黄金甲。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java如何处理ICMP报文的收发相关的知识,希望对你有一定的参考价值。

Java如何处理ICMP报文的收发  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  前言

  java是跨平台语言 一般来说对网络的操作都在IP层以上 也就是只能对tcp/udp进行操作 当然也可以设置部分tcp/udp的option 如果想再往IP层或者数据link层操作就无能为力了 必须依靠jni使用本地OS的socket部分接口 很幸运 我在知道有winpcap的时候同时也知道有人在开发jpcap 此包可以方便的操作网络底层应用协议 以下详细描述

  实施步骤

  下载需要的包上可以下到最新的jpcap 你只需要把lib中的dll文件拷贝到jre的bin目录 同时lib中的jar文件拷贝到jre中的lib/ext目录下就安装完整 当然你可以使用exe安装包进行安装 这样会更加的简单

    import  InetAddress; import jpcap JpcapCaptor; import jpcap JpcapSender; import jpcap NeorkInterface; import jpcap packet EthernetPacket; import jpcap packet ICMPPacket; import jpcap packet IPPacket; class ICMP     public static void main(String[] args) throws java io IOException         NeorkInterface[] devices = JpcapCaptor getDeviceList();         if(args length< )             System out println( Usage: java ICMP <device index (e g     )> );             for(int i= ;i<devices length;i++)                 System out println(i+ : +devices[i] name+ ( +devices[i] description+ ) );             System exit( );                  int index=Integer parseInt(args[ ]); //开启网络设备         JpcapCaptor captor=JpcapCaptor openDevice(devices[index] false ); //设置只过滤 icmp包         captor setFilter( icmp true);         JpcapSender sender=captor getJpcapSenderInstance();                  ICMPPacket p=new ICMPPacket();         p type=ICMPPacket ICMP_ECHO;         p seq=(short) x ;         p id=(short) x ;                  p setIPv Parameter( false false false false false false IPPacket IPPROTO_ICMP             InetAddress getByName( ) InetAddress getByName( ));         p data= abcdefghijklmnopqrstuvwabcdehghi getBytes();         EthernetPacket ether=new EthernetPacket();         ether frametype=EthernetPacket ETHERTYPE_IP; //填写自己和对方的mac地址 必须要正确填写 如果有错误将无法收到回包         ether dst_mac=new byte[](byte) x (byte) x (byte) x d (byte) x (byte) xd (byte) x ;         ether src_mac=new byte[](byte) x (byte) x (byte) x (byte) xad (byte) x c (byte) x ;         p datalink=ether;                  sender sendPacket(p);         System out println( send );         ICMPPacket rp= null;         while(true)             rp=(ICMPPacket)captor getPacket();             if(rp==null)                 throw new IllegalArgumentException( no rcv icmp echo reply );             else                              System out println( rcv icmp echo reply );                 return ;                           
cha138/Article/program/Java/hx/201311/25573

相关参考

知识大全 编写可在线收发E-mail的Java Applet

编写可在线收发E-mail的JavaApplet  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 Delphi中用ICMP探测远程主机是否存活

Delphi中用ICMP探测远程主机是否存活  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!网络通讯

公文的收发要履行的处理程序包括登记、分办、拟办和__

公文的收发要履行的处理程序包括登记、分办、拟办和_____。A、批办B、承办C、受办D、催办答案:ABD解析:收、发文程序包括收文和发文两个过程。收文包括登记、分办、批办、承办、催办等环节。发文包括拟

知识大全 怎样学好java语言

怎样学好java语言?学习程序的最好方式是参照源代码,先仿照,后创新,慢慢有积累了,就可以收发自由了。没关系的,慢慢来,不可能一步到位的。java确实很难学.学习Java其实应该上升到如何学习程序设计

以太网中的内部收发器主要功能是什么?采用内收发器后,线路连接应有哪些改变?

  收发器是网卡与作为传输介质的同轴电缆之间的接口,它通过隔离变压器和脉冲变压器实现二者的电磁隔离,并在收发器电缆与同轴电缆之间提供信号电平转换,对同轴电缆则提供高阻抗连接。  网卡中配有内部收发器后

以太网中的内部收发器主要功能是什么?采用内收发器后,线路连接应有哪些改变?

  收发器是网卡与作为传输介质的同轴电缆之间的接口,它通过隔离变压器和脉冲变压器实现二者的电磁隔离,并在收发器电缆与同轴电缆之间提供信号电平转换,对同轴电缆则提供高阻抗连接。  网卡中配有内部收发器后

知识大全 公司的exchange邮箱用outlook客户端,但是只能用公司内网收发邮件,回家用外网就不能收发邮件,求大神解

公司的exchange邮箱用outlook客户端,但是只能用公司内网收发邮件,回家用外网就不能收发邮件,求大神解内网和外网用的是不同的收发方式,如果你的设定不改的话,外网肯定收不到,但是具体改成什么样

知识大全 联通的手机突然不能收发短信了,

联通的手机突然不能收发短信了,如果您的手机无法收发短信,建议您:1.检查是否可以拨打电话,排除是否为话费不足或网络信号不稳定导致。2.若拨打电话正常,但无法发送短信,请查看是否设置短信黑名单功能。3.

收发电子邮件要使用__协议

收发电子邮件要使用_____协议。A、P0P3和IPB、TCP和IPC、SMTP和TCPD、SMTP和POP3答案:D解析:收发电子邮件需要用到SMTP和POP3两个协议。发送邮件通常使用SMTP协议

定期借记支付业务停止付款要以什么方式处理?

收款行对已发出的定期借记支付业务需要付款行停止付款的,应当使用规定格式报文申请止付。