知识大全 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 ;
相关参考
知识大全 编写可在线收发E-mail的Java Applet
编写可在线收发E-mail的JavaApplet 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Delphi中用ICMP探测远程主机是否存活 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!网络通讯
公文的收发要履行的处理程序包括登记、分办、拟办和_____。A、批办B、承办C、受办D、催办答案:ABD解析:收、发文程序包括收文和发文两个过程。收文包括登记、分办、批办、承办、催办等环节。发文包括拟
怎样学好java语言?学习程序的最好方式是参照源代码,先仿照,后创新,慢慢有积累了,就可以收发自由了。没关系的,慢慢来,不可能一步到位的。java确实很难学.学习Java其实应该上升到如何学习程序设计
以太网中的内部收发器主要功能是什么?采用内收发器后,线路连接应有哪些改变?
收发器是网卡与作为传输介质的同轴电缆之间的接口,它通过隔离变压器和脉冲变压器实现二者的电磁隔离,并在收发器电缆与同轴电缆之间提供信号电平转换,对同轴电缆则提供高阻抗连接。 网卡中配有内部收发器后
以太网中的内部收发器主要功能是什么?采用内收发器后,线路连接应有哪些改变?
收发器是网卡与作为传输介质的同轴电缆之间的接口,它通过隔离变压器和脉冲变压器实现二者的电磁隔离,并在收发器电缆与同轴电缆之间提供信号电平转换,对同轴电缆则提供高阻抗连接。 网卡中配有内部收发器后
知识大全 公司的exchange邮箱用outlook客户端,但是只能用公司内网收发邮件,回家用外网就不能收发邮件,求大神解
公司的exchange邮箱用outlook客户端,但是只能用公司内网收发邮件,回家用外网就不能收发邮件,求大神解内网和外网用的是不同的收发方式,如果你的设定不改的话,外网肯定收不到,但是具体改成什么样
联通的手机突然不能收发短信了,如果您的手机无法收发短信,建议您:1.检查是否可以拨打电话,排除是否为话费不足或网络信号不稳定导致。2.若拨打电话正常,但无法发送短信,请查看是否设置短信黑名单功能。3.
收发电子邮件要使用_____协议。A、P0P3和IPB、TCP和IPC、SMTP和TCPD、SMTP和POP3答案:D解析:收发电子邮件需要用到SMTP和POP3两个协议。发送邮件通常使用SMTP协议
收款行对已发出的定期借记支付业务需要付款行停止付款的,应当使用规定格式报文申请止付。