• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      一款基于Jpcap的網(wǎng)絡(luò)工具軟件的設(shè)計與實現(xiàn)

      2017-05-19 03:30:28鄒寧
      電腦與電信 2017年4期
      關(guān)鍵詞:該軟件網(wǎng)卡報文

      鄒寧

      (中國民用航空華東地區(qū)空中交通管理局浙江分局,浙江 杭州 311207)

      一款基于Jpcap的網(wǎng)絡(luò)工具軟件的設(shè)計與實現(xiàn)

      鄒寧

      (中國民用航空華東地區(qū)空中交通管理局浙江分局,浙江 杭州 311207)

      介紹了一款基于Jp c a p的網(wǎng)絡(luò)工具軟件的設(shè)計與實現(xiàn)。該軟件在W i n d o w s平臺下開發(fā),采用JA VA語言,使用Jp c a p獲得網(wǎng)卡信息、捕獲數(shù)據(jù)包和發(fā)送數(shù)據(jù)包。該軟件具有良好的用戶操作界面,可以選擇并顯示網(wǎng)卡信息、發(fā)送自定義U D P數(shù)據(jù)包、通過PING測試網(wǎng)絡(luò)連通性。

      網(wǎng)絡(luò);軟件;JA VA;Jp c a p

      1 引言

      隨著Internet技術(shù)的發(fā)展,網(wǎng)絡(luò)世界對人們的生活和工作產(chǎn)生了越來越重要的作用,而網(wǎng)絡(luò)中的安全問題也越來越嚴重,因此網(wǎng)絡(luò)分析和監(jiān)控軟件也變得越來越重要。Jpcap是一種網(wǎng)絡(luò)數(shù)據(jù)包處理開發(fā)庫,它為網(wǎng)絡(luò)分析和監(jiān)控軟件的開發(fā)提供了支持。Jpcap是JAVA的一個中間件,它給JAVA語言提供了一個公共接口。利用Jpcap可以捕獲網(wǎng)絡(luò)中的數(shù)據(jù)包,實現(xiàn)對網(wǎng)絡(luò)的監(jiān)控和分析;也可以將自定義的數(shù)據(jù)包發(fā)送到網(wǎng)絡(luò)。本文利用Jpcap和JAVA語言實現(xiàn)了一款網(wǎng)絡(luò)工具軟件的開發(fā),軟件具有良好的用戶操作界面,通過該軟件,可以向網(wǎng)絡(luò)發(fā)送自定義UDP數(shù)據(jù)包、捕獲網(wǎng)絡(luò)中的數(shù)據(jù)包和發(fā)送ICMP數(shù)據(jù)包測試網(wǎng)絡(luò)連通性。

      2 網(wǎng)絡(luò)數(shù)據(jù)包捕獲工具Jpcap

      2.1 Jpcap簡介

      Jpcap是一個JAVA類庫包,為發(fā)送、捕獲網(wǎng)絡(luò)數(shù)據(jù)包提供一個公共的JAVA接口,實現(xiàn)了平臺無關(guān)性。它是JAVA的一個中間件,不直接對數(shù)據(jù)鏈路層進行控制,它調(diào)用winpcap/libpcap。目前Jpcap的最新版本為Jpcap 0.7版,它支持windows、unix、linux等系統(tǒng),并且支持TCP、UDP、IPv4、IPv6、Ethernet、ARP/RARP等協(xié)議[1]。

      2.2 JPcap類介紹

      Jpcap類庫共有13個類,以及一個包處理接口,JAVA應(yīng)用程序通過調(diào)用這些Jpcap類庫和接口,就能實現(xiàn)對IP數(shù)據(jù)包的捕獲、過濾和保存的功能[1]。它們分別為 Jpcap、JpcapSender、JpcapWriter、Packet、TCPPacket、UDPPacket、IPPacket、IPv6Option、IPAddress、ARPPacket、ICMPPacket、EthernetPacket、DatalinkPacket類以及JpcapHandler接口。

      2.2.1 查看網(wǎng)卡屬性

      查看網(wǎng)卡屬性用到Jpcap中的NetworkInterface、Jpcap-Captor類。

      class jpcap.NetworkInterface:這個類中包含了一些網(wǎng)絡(luò)接口信息;

      class jpcap.JpcapCaptor:這個類用來從網(wǎng)絡(luò)中捕獲或讀取文件中的數(shù)據(jù)包。

      2.2.2 發(fā)送數(shù)據(jù)包

      發(fā)送數(shù)據(jù)包用到Jpcap中的JpcapSender、JpcapCaptor類。

      class jpcap.JpcapSender:這個類用來發(fā)送數(shù)據(jù)包;

      發(fā)送數(shù)據(jù)包需要的方法:

      jpcap.JpcapCaptor.getDeviceList():該函數(shù)用來獲得網(wǎng)卡列表;

      jpcap.JpcapCaptor.openDevice (NetworkInterface interface,int snaplen,boolean promisc,int to_ms):這是一個重要的函數(shù),它有四個參數(shù):即將打開的設(shè)備名、從設(shè)備上一次讀取的最大字節(jié)數(shù)、說明是否將網(wǎng)卡設(shè)為混雜模式、以后調(diào)processPacket()或者loopPacket()函數(shù)時用到的超時值;

      jpcap.JpcapSender.sendPacket(Packet packet):該函數(shù)用來發(fā)送定義好的數(shù)據(jù)包。

      2.2.3 接收數(shù)據(jù)包

      接收數(shù)據(jù)包用到Jpcap中的JpcapCaptor類。

      接收數(shù)據(jù)包需要的方法:

      jpcap.JpcapCaptor.getDeviceList():該函數(shù)用來獲得網(wǎng)卡列表;

      jpcap.JpcapCaptor.openDevice (NetworkInterface intrface,int snaplen,boolean promisc,int to_ms):該函數(shù)有四個參數(shù),分別為:即將打開的設(shè)備名、上次從設(shè)備讀取的最大字節(jié)數(shù)、是否將網(wǎng)卡設(shè)為混雜模式、調(diào)用processPacket()或loopPacket()函數(shù)時用到的超時值。使用時,首先要打開網(wǎng)絡(luò)適配器,將網(wǎng)卡設(shè)置為混雜工作模式,使網(wǎng)卡可以接收來自網(wǎng)絡(luò)的所有的數(shù)據(jù)包[2];

      jpcap.JpcapCaptor.getPacket():捕獲單個數(shù)據(jù)包;

      jpcap.JpcapCaptor.loopPacket(int count,PacketReceiver handler):持續(xù)捕獲指定數(shù)目的數(shù)據(jù)包;

      jpcap.JpcapCaptor.processPacket(int count,PacketReceiver handler):持續(xù)捕獲指定數(shù)目的數(shù)據(jù)包,但不同于loopPacket(int count,PacketReceiver handler),當(dāng)超時后,即使沒有捕獲到數(shù)據(jù)包,該函數(shù)也會返回。

      3 UDP數(shù)據(jù)報格式

      用戶數(shù)據(jù)報協(xié)議(UDP)是一種無連接的不可靠的運輸層協(xié)議,具有進程到進程的通信功能,但無法確保數(shù)據(jù)包到達目的主機。圖1給出了用戶數(shù)據(jù)報(UDP分組)的格式。

      圖1 用戶數(shù)據(jù)報的格式

      4 PING功能的原理

      PING程序通過發(fā)送ICMP回顯請求(ECHO_REQUEST)報文給目標(biāo)設(shè)備,并等待ICMP回顯應(yīng)答(ECHO_REPLY)報文[3]來測試網(wǎng)絡(luò)連通性。Internet控制報文協(xié)議(Internet Control Message Protocol)是網(wǎng)絡(luò)層的一個協(xié)議,ICMP報文被包裝成IP數(shù)據(jù)包。設(shè)備可以通過ICMP協(xié)議報告錯誤并交換相關(guān)的狀態(tài)信息。

      5 軟件的實現(xiàn)

      5.1 軟件結(jié)構(gòu)

      該軟件分為五大模塊:初始化模塊、輸出網(wǎng)卡信息模塊、PING模塊、發(fā)送UDP數(shù)據(jù)包模塊、接收模塊。初始化模塊用來顯示軟件界面和用戶配置數(shù)據(jù)的導(dǎo)入,輸出網(wǎng)卡信息模塊用來輸出相關(guān)網(wǎng)卡的信息,PING模塊用來發(fā)送和接收ICMP數(shù)據(jù)包,發(fā)送UDP數(shù)據(jù)包模塊用來發(fā)送用戶自定義的UDP數(shù)據(jù)包,接收模塊用來接收網(wǎng)絡(luò)數(shù)據(jù)包并輸出數(shù)據(jù)包信息(圖2)。

      圖2 軟件結(jié)構(gòu)

      5.2 程序流程圖

      首先對程序進行初始化,顯示用戶界面,用戶選擇相應(yīng)網(wǎng)卡,并輸入自定義數(shù)據(jù)信息,若初始化失敗則返回并輸出出錯信息。若初始化成功,用戶選擇相應(yīng)功能模塊,實現(xiàn)相應(yīng)功能并返回(圖3)。

      圖3 程序流程圖

      5.3 UDP數(shù)據(jù)包的設(shè)置

      UDP數(shù)據(jù)包設(shè)置代碼如下:

      public UDPPacket proUDPPacket(int sourPort,int dest-Port,InetAddress sourIP,InetAddress destIP,String contents){

      //構(gòu)造UDP數(shù)據(jù)包

      UDPPacket p=new UDPPacket(sourPort,destPort);

      p.setIPv4Parameter(0,false,false,false,0,false,false,false,0, 1010101,100,IPPacket.IPPROTO_UDP,sourIP,destIP);

      p.data=contents.getBytes();

      EthernetPacket ether=new EthernetPacket();

      ether.frametype=EthernetPacket.ETHERTYPE_IP;

      NetworkInterface[]devices=JpcapCaptor.getDeviceList

      5.4 監(jiān)聽和發(fā)送

      軟件的監(jiān)聽功能通過捕獲網(wǎng)絡(luò)中的數(shù)據(jù)包來實現(xiàn),網(wǎng)絡(luò)數(shù)據(jù)包捕獲代碼如下:

      發(fā)送UDP數(shù)據(jù)包的代碼如下:

      5.5 PING功能的實現(xiàn)

      PING功能實現(xiàn)代碼詳見文獻[3]。

      6 結(jié)束語

      本文介紹了Jpcap的使用方法、UDP數(shù)據(jù)包格式和PING工作原理,并采用JAVA語言,實現(xiàn)了一款窗口化的簡單小程序,具備良好的用戶操作界面,能夠輸出網(wǎng)卡信息、發(fā)送和接收PING數(shù)據(jù)包、發(fā)送自定義UDP數(shù)據(jù)包、監(jiān)聽網(wǎng)絡(luò)數(shù)據(jù)包。在Winows 7系統(tǒng)下通過測試,運行良好。當(dāng)然,若要對接收到的網(wǎng)絡(luò)數(shù)據(jù)包的信息進行說明后輸出,使得輸出信息可讀性更好,該程序還有待進一步改進。

      [1]陳鵬.基于Jpcap 的TCP/IP 數(shù)據(jù)包捕獲與發(fā)送[J].吉昌學(xué)院學(xué)報,2008(2):107-109.

      [2]石慧慧.基于Jpcap 的網(wǎng)絡(luò)流量采集監(jiān)控系統(tǒng)研究與設(shè)計[D].南京:南京林業(yè)大學(xué),2010.

      [3]岳成剛,侯整風(fēng).用Jpcap 和Java 實現(xiàn)圖形化的Ping 程序[J].淮北煤炭師范學(xué)院學(xué)報(自然科學(xué)版),2008,29(2):53-56.

      [4]李鐘尉,陳丹丹.Java 開發(fā)實戰(zhàn)1200 例(第1 卷)[M].北京:清華大學(xué)出版社,2011.

      Design and Realization of a Kind of Network Tool Software Based on Jpcap

      Zou Ning
      (Zhejiang Sub-bureau of East China RegionalAir Traffic Management Bureau of CAAC,Hangzhou 311207,Zhejiang)

      tract】 This paper mainly introduces the designing procedure and realization of the network tool software based on Jpcap. The software is developed using JAVA language under the Windows system.Using this software,we can get the information of network card,capture and send packets.The Graphical User Interface(GUI)of the software is friendly.The information of the network card that we choose can be seen.The UDP packets that we defined can be sent.Moreover,the network connectivity can be tested through the method of PING.

      words】 network;software;JAVA;Jpcap

      TP393.08

      A

      1008-6609(2017)04-0047-03

      鄒寧(1987-),男,山東冠縣人,碩士,助理工程師,研究方向為通信、計算機網(wǎng)絡(luò)。

      猜你喜歡
      該軟件網(wǎng)卡報文
      在DDS 中間件上實現(xiàn)雙冗余網(wǎng)卡切換的方法
      基于J1939 協(xié)議多包報文的時序研究及應(yīng)用
      汽車電器(2022年9期)2022-11-07 02:16:24
      簡單靈活 控制Windows 10更新更方便
      CTCS-2級報文數(shù)據(jù)管理需求分析和實現(xiàn)
      淺析反駁類報文要點
      中國外匯(2019年11期)2019-08-27 02:06:30
      Server 2016網(wǎng)卡組合模式
      Flashfxp Password Decryptor
      ATS與列車通信報文分析
      挑戰(zhàn)Killer網(wǎng)卡Realtek網(wǎng)游專用Dragon網(wǎng)卡
      Allen & Heath推出GLD Editor控制軟件
      演藝科技(2013年1期)2013-01-30 01:47:42
      泸水县| 清涧县| 西宁市| 藁城市| 安福县| 鹤壁市| 江川县| 个旧市| 马龙县| 桃园县| 本溪市| 当阳市| 永新县| 郯城县| 达日县| 革吉县| 尼玛县| 惠东县| 周至县| 黎平县| 凤山县| 广南县| 沅陵县| 定安县| 革吉县| 锡林浩特市| 金寨县| 望都县| 正宁县| 霍州市| 麻江县| 福建省| 晴隆县| 太仆寺旗| 昭苏县| 咸丰县| 岳西县| 玉林市| 衡东县| 武平县| 聂荣县|