SlideShare ist ein Scribd-Unternehmen logo
1 von 18
jnetpcap 개발가이드
java network packet capture api
(jnetpcap)
Quick start guide
Originated by http://jnetpcap.com/
darkandark90@gmail.com
Revision History
2013.05.05 first commit
Target Audience
• 네트워크 프로그래밍을 하는 사람.
• wireshark 쓰는 게 버거운 사람.
• 개발서버가 없어서 고객 실서버에서 뭔가
해결해야 하는 사람(welcome to hell)
- play network programing
- want to have to make personalization
network capture tool
Test version
JDK 1.7 64bit
jnetpcap-1.3.b4-1.win64.zip
-jdk버전은 상관없음. 1.6 32bit 권장
일반적으로 대상장비들이 32bit lpv4
신형장비인 경우 64bit ipv6 인 경우가 많으므로
만약 상업적으로 뭔가를 한다면 그냥 32bit 추천
유사 라이브러리
- winpcap
- jpcap
개발환경 세팅#1
http://sourceforge.net/projects/jnetpcap/?sou
rce=recommended
sourceforge에서 다운로드
압축을 풀어서 jnetpcap.dll 파일을 windows
에 System32폴더에 복사
개발환경 세팅#2
eclipse설정
AddLibrary클
릭
완성된 화면
개발환경 세팅#3
user library선택
개발환경 세팅#4
User
Libraries 클
릭
개발환경 세팅#5
New 클릭
개발환경 세팅#6
이름은 상관없음.
체크박스에 반드시 체
크
개발환경 세팅#7
• Add jars
클릭
jnetpcap.ja
r 파일 추가
Api 사용 장비 조회
존재여부
//network device저장용
• List<PcapIf> alldevs = new ArrayList<PcapIf>();
• StringBuilder errbuf = new StringBuilder();
• int r = Pcap.findAllDevs(alldevs, errbuf);
• if (r == Pcap.NOT_OK || alldevs.isEmpty()) {
• System.err.printf("Can't read list of
devices, error is %s", errbuf
• .toString());
• return;
• }
장비조회 #2
존재하는 경우
PcapIf.getName()
PcapIf.getDescription()
이용
Device 조회결과
• #0: DeviceNPF_{940F2889-F79F-4438-807C-
E745A91C0F2F} [VMware Virtual Ethernet
Adapter]
• #1: DeviceNPF_{47CC0E79-D78A-42F0-8A78-
7104AB62AA48} [Realtek PCIe GBE Family
Controller]
• #2: DeviceNPF_{F04CEA22-A7CC-406A-A27E-
BF440554CBB6} [Realtek PCIe GBE Family
Controller]
• #3: DeviceNPF_{C2E8FF15-D8A3-4320-A70B-
011511818BC5} [VMware Virtual Ethernet Adapter]
packet capture api
PcapPacketHandler이용
• JPacketHandler<String> jpacketHandler = new
JPacketHandler<String>() {
• @Override
• public void nextPacket(JPacket packet, String user) {
• final JCaptureHeader header = packet.getCaptureHeader();
• System.out.printf( "packet caplen=%d wiredlen=%dn",
header.caplen(), header.wirelen());
• System.out.println(packet.toString());
• }
• };
• pcap.loop(10, jpacketHandler, "jpacket test");
• }
packet capture 결과
• packet caplen=66 wiredlen=66
• Frame:
• Frame: number = 0
• Frame: timestamp = 2013-05-05 01:56:06.805
• Frame: wire length = 66 bytes
• Frame: captured length = 66 bytes
• Frame:
• Eth: ******* Ethernet - "Ethernet" - offset=0 (0x0) length=14
• Eth:
• Eth: destination = 72:08:17:18:2e:23
• Eth: .... ..0. .... .... = [0] LG bit
• Eth: .... ...0 .... .... = [2] IG bit
• Eth: source = 00:25:22:a4:93:fe
• Eth: .... ..0. .... .... = [0] LG bit
• Eth: .... ...0 .... .... = [2] IG bit
• Eth: type = 0x800 (2048) [ip version 4]
• Eth:
• Ip: ******* Ip4 - "ip version 4" - offset=14 (0xE) length=20 protocol suite=NETWORK
• Ip:
• Ip: version = 4
• Ip: hlen = 5 [5 * 4 = 20 bytes, No Ip Options]
• Ip: diffserv = 0x0 (0)
• Ip: 0000 00.. = [0] code point: not set
• Ip: .... ..0. = [0] ECN bit: not set
• Ip: .... ...0 = [0] ECE bit: not set
• Ip: length = 52
• Ip: id = 0x14DB (5339)
• Ip: flags = 0x2 (2)
• Ip: 0.. = [0] reserved
• Ip: .1. = [1] DF: do not fragment: set
• Ip: ..0 = [0] MF: more fragments: not set
• Ip: offset = 0
• Ip: ttl = 128 [time to live]
• Ip: type = 6 [next: Transmission Control]
• Ip: checksum = 0x0 (0) [incorrect: 0x4EA0]
• Ip: source = 192.168.219.5
• Ip: destination = 116.34.135.120
• Ip:
• Tcp: ******* Tcp offset=34 (0x22) length=32 중략….
미결..
filter 쓰는 방법을 추가해야 함…
Jnetpcap quickguide

Weitere ähnliche Inhalte

Was ist angesagt?

KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기흥배 최
 
TCP/IP 발표자료 - 김연수
TCP/IP 발표자료 - 김연수TCP/IP 발표자료 - 김연수
TCP/IP 발표자료 - 김연수Yeon Soo Kim
 
ACL - cisco 2811 router
ACL - cisco 2811 router ACL - cisco 2811 router
ACL - cisco 2811 router 준기 홍
 
[네트워크] TCP, 믿을 수 있나요!?
[네트워크] TCP, 믿을 수 있나요!?[네트워크] TCP, 믿을 수 있나요!?
[네트워크] TCP, 믿을 수 있나요!?용민 박
 
패킷의 전달과정
패킷의 전달과정패킷의 전달과정
패킷의 전달과정성연 김
 
소켓프로그래밍 기초요약
소켓프로그래밍 기초요약소켓프로그래밍 기초요약
소켓프로그래밍 기초요약세빈 정
 
android_thread
android_threadandroid_thread
android_threadhandfoot
 
실무로 배우는 시스템 성능 최적화 10부. 네트워크 모니터링
실무로 배우는 시스템 성능 최적화   10부. 네트워크 모니터링실무로 배우는 시스템 성능 최적화   10부. 네트워크 모니터링
실무로 배우는 시스템 성능 최적화 10부. 네트워크 모니터링Hyunsoo Jung
 
Tensorflow로 플로이드 클라우드에서 합성곱 신경망 (CNN) 구현해보기
Tensorflow로 플로이드 클라우드에서 합성곱 신경망 (CNN) 구현해보기 Tensorflow로 플로이드 클라우드에서 합성곱 신경망 (CNN) 구현해보기
Tensorflow로 플로이드 클라우드에서 합성곱 신경망 (CNN) 구현해보기 SEUNGWOO LEE
 
Python Network Programming
Python Network ProgrammingPython Network Programming
Python Network ProgrammingTae Young Lee
 
[2D4]Python에서의 동시성_병렬성
[2D4]Python에서의 동시성_병렬성[2D4]Python에서의 동시성_병렬성
[2D4]Python에서의 동시성_병렬성NAVER D2
 
Python socket programming
Python socket programmingPython socket programming
Python socket programmingTae Young Lee
 
[164] pinpoint
[164] pinpoint[164] pinpoint
[164] pinpointNAVER D2
 
리눅스 소켓 프로그래밍 기초
리눅스 소켓 프로그래밍 기초리눅스 소켓 프로그래밍 기초
리눅스 소켓 프로그래밍 기초Yu Yongwoo
 
도커 없이 컨테이너 만들기 3편
도커 없이 컨테이너 만들기 3편도커 없이 컨테이너 만들기 3편
도커 없이 컨테이너 만들기 3편Sam Kim
 
도커없이컨테이너 만들기 8편 - pid namespace
도커없이컨테이너 만들기 8편 - pid namespace도커없이컨테이너 만들기 8편 - pid namespace
도커없이컨테이너 만들기 8편 - pid namespaceSam Kim
 

Was ist angesagt? (19)

KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
 
TCP/IP 발표자료 - 김연수
TCP/IP 발표자료 - 김연수TCP/IP 발표자료 - 김연수
TCP/IP 발표자료 - 김연수
 
ACL - cisco 2811 router
ACL - cisco 2811 router ACL - cisco 2811 router
ACL - cisco 2811 router
 
[네트워크] TCP, 믿을 수 있나요!?
[네트워크] TCP, 믿을 수 있나요!?[네트워크] TCP, 믿을 수 있나요!?
[네트워크] TCP, 믿을 수 있나요!?
 
패킷의 전달과정
패킷의 전달과정패킷의 전달과정
패킷의 전달과정
 
Nodejs_chapter3
Nodejs_chapter3Nodejs_chapter3
Nodejs_chapter3
 
소켓프로그래밍 기초요약
소켓프로그래밍 기초요약소켓프로그래밍 기초요약
소켓프로그래밍 기초요약
 
android_thread
android_threadandroid_thread
android_thread
 
Mem cached
Mem cachedMem cached
Mem cached
 
실무로 배우는 시스템 성능 최적화 10부. 네트워크 모니터링
실무로 배우는 시스템 성능 최적화   10부. 네트워크 모니터링실무로 배우는 시스템 성능 최적화   10부. 네트워크 모니터링
실무로 배우는 시스템 성능 최적화 10부. 네트워크 모니터링
 
Tensorflow로 플로이드 클라우드에서 합성곱 신경망 (CNN) 구현해보기
Tensorflow로 플로이드 클라우드에서 합성곱 신경망 (CNN) 구현해보기 Tensorflow로 플로이드 클라우드에서 합성곱 신경망 (CNN) 구현해보기
Tensorflow로 플로이드 클라우드에서 합성곱 신경망 (CNN) 구현해보기
 
Python Network Programming
Python Network ProgrammingPython Network Programming
Python Network Programming
 
Tcpdump
TcpdumpTcpdump
Tcpdump
 
[2D4]Python에서의 동시성_병렬성
[2D4]Python에서의 동시성_병렬성[2D4]Python에서의 동시성_병렬성
[2D4]Python에서의 동시성_병렬성
 
Python socket programming
Python socket programmingPython socket programming
Python socket programming
 
[164] pinpoint
[164] pinpoint[164] pinpoint
[164] pinpoint
 
리눅스 소켓 프로그래밍 기초
리눅스 소켓 프로그래밍 기초리눅스 소켓 프로그래밍 기초
리눅스 소켓 프로그래밍 기초
 
도커 없이 컨테이너 만들기 3편
도커 없이 컨테이너 만들기 3편도커 없이 컨테이너 만들기 3편
도커 없이 컨테이너 만들기 3편
 
도커없이컨테이너 만들기 8편 - pid namespace
도커없이컨테이너 만들기 8편 - pid namespace도커없이컨테이너 만들기 8편 - pid namespace
도커없이컨테이너 만들기 8편 - pid namespace
 

Ähnlich wie Jnetpcap quickguide

2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)
2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)
2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)khuhacker
 
[KGC2014] DX9에서DX11로의이행경험공유
[KGC2014] DX9에서DX11로의이행경험공유[KGC2014] DX9에서DX11로의이행경험공유
[KGC2014] DX9에서DX11로의이행경험공유Hwan Min
 
Remote-debugging-based-on-notrace32-20130619-1900
Remote-debugging-based-on-notrace32-20130619-1900Remote-debugging-based-on-notrace32-20130619-1900
Remote-debugging-based-on-notrace32-20130619-1900Samsung Electronics
 
android stuff1
android stuff1android stuff1
android stuff1Jin Jiu
 
사물인터넷 노트4_라즈베리파이기본
사물인터넷 노트4_라즈베리파이기본사물인터넷 노트4_라즈베리파이기본
사물인터넷 노트4_라즈베리파이기본Dong Hwa Jeong
 
(2013 DEVIEW) 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
(2013 DEVIEW) 멀티쓰레드 프로그래밍이  왜이리 힘드나요? (2013 DEVIEW) 멀티쓰레드 프로그래밍이  왜이리 힘드나요?
(2013 DEVIEW) 멀티쓰레드 프로그래밍이 왜이리 힘드나요? 내훈 정
 
242 naver-2
242 naver-2242 naver-2
242 naver-2NAVER D2
 
DPDK (Data Plane Development Kit)
DPDK (Data Plane Development Kit) DPDK (Data Plane Development Kit)
DPDK (Data Plane Development Kit) ymtech
 
[조진현] [Kgc2011]direct x11 이야기
[조진현] [Kgc2011]direct x11 이야기[조진현] [Kgc2011]direct x11 이야기
[조진현] [Kgc2011]direct x11 이야기진현 조
 
kics2013-winter-biomp-slide-20130127-1340
kics2013-winter-biomp-slide-20130127-1340kics2013-winter-biomp-slide-20130127-1340
kics2013-winter-biomp-slide-20130127-1340Samsung Electronics
 
GOTHAM 오픈소스 메쉬 네트워킹 소프트웨어 패키지
GOTHAM 오픈소스 메쉬 네트워킹 소프트웨어 패키지GOTHAM 오픈소스 메쉬 네트워킹 소프트웨어 패키지
GOTHAM 오픈소스 메쉬 네트워킹 소프트웨어 패키지Kyunghee Univ
 
[KGC 2013] Online Game Security in China
[KGC 2013] Online Game Security in China[KGC 2013] Online Game Security in China
[KGC 2013] Online Game Security in ChinaSeungmin Shin
 
Linux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario ChoLinux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario ChoMario Cho
 
스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들Hyunjik Bae
 
IPv6 이론과 소켓 프로그래밍
IPv6 이론과 소켓 프로그래밍IPv6 이론과 소켓 프로그래밍
IPv6 이론과 소켓 프로그래밍OnGameServer
 
[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅NAVER D2
 

Ähnlich wie Jnetpcap quickguide (20)

2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)
2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)
2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)
 
[KGC2014] DX9에서DX11로의이행경험공유
[KGC2014] DX9에서DX11로의이행경험공유[KGC2014] DX9에서DX11로의이행경험공유
[KGC2014] DX9에서DX11로의이행경험공유
 
kt-cloud
kt-cloudkt-cloud
kt-cloud
 
Remote-debugging-based-on-notrace32-20130619-1900
Remote-debugging-based-on-notrace32-20130619-1900Remote-debugging-based-on-notrace32-20130619-1900
Remote-debugging-based-on-notrace32-20130619-1900
 
android stuff1
android stuff1android stuff1
android stuff1
 
Meteor IoT
Meteor IoTMeteor IoT
Meteor IoT
 
사물인터넷 노트4_라즈베리파이기본
사물인터넷 노트4_라즈베리파이기본사물인터넷 노트4_라즈베리파이기본
사물인터넷 노트4_라즈베리파이기본
 
(2013 DEVIEW) 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
(2013 DEVIEW) 멀티쓰레드 프로그래밍이  왜이리 힘드나요? (2013 DEVIEW) 멀티쓰레드 프로그래밍이  왜이리 힘드나요?
(2013 DEVIEW) 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
 
242 naver-2
242 naver-2242 naver-2
242 naver-2
 
DPDK (Data Plane Development Kit)
DPDK (Data Plane Development Kit) DPDK (Data Plane Development Kit)
DPDK (Data Plane Development Kit)
 
[조진현] [Kgc2011]direct x11 이야기
[조진현] [Kgc2011]direct x11 이야기[조진현] [Kgc2011]direct x11 이야기
[조진현] [Kgc2011]direct x11 이야기
 
kics2013-winter-biomp-slide-20130127-1340
kics2013-winter-biomp-slide-20130127-1340kics2013-winter-biomp-slide-20130127-1340
kics2013-winter-biomp-slide-20130127-1340
 
Maker 오해와 진실
Maker 오해와 진실Maker 오해와 진실
Maker 오해와 진실
 
GOTHAM 오픈소스 메쉬 네트워킹 소프트웨어 패키지
GOTHAM 오픈소스 메쉬 네트워킹 소프트웨어 패키지GOTHAM 오픈소스 메쉬 네트워킹 소프트웨어 패키지
GOTHAM 오픈소스 메쉬 네트워킹 소프트웨어 패키지
 
[KGC 2013] Online Game Security in China
[KGC 2013] Online Game Security in China[KGC 2013] Online Game Security in China
[KGC 2013] Online Game Security in China
 
DPDK
DPDKDPDK
DPDK
 
Linux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario ChoLinux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario Cho
 
스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들
 
IPv6 이론과 소켓 프로그래밍
IPv6 이론과 소켓 프로그래밍IPv6 이론과 소켓 프로그래밍
IPv6 이론과 소켓 프로그래밍
 
[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅
 

Mehr von Sukjin Yun

동영상입문
동영상입문동영상입문
동영상입문Sukjin Yun
 
Enterprise Java web Deployment Strategy
Enterprise Java web Deployment StrategyEnterprise Java web Deployment Strategy
Enterprise Java web Deployment StrategySukjin Yun
 
Geb quick start
Geb quick startGeb quick start
Geb quick startSukjin Yun
 
BDD with Spock
BDD with SpockBDD with Spock
BDD with SpockSukjin Yun
 
Scala quick start
Scala quick startScala quick start
Scala quick startSukjin Yun
 
Spring java config
Spring java configSpring java config
Spring java configSukjin Yun
 
Design pattern 옵저버
Design pattern 옵저버Design pattern 옵저버
Design pattern 옵저버Sukjin Yun
 
docker_quick_start
docker_quick_startdocker_quick_start
docker_quick_startSukjin Yun
 
Rabbitmq install한글
Rabbitmq install한글Rabbitmq install한글
Rabbitmq install한글Sukjin Yun
 
Weblogic install
Weblogic installWeblogic install
Weblogic installSukjin Yun
 
무료로 워드프레스시작하기
무료로 워드프레스시작하기무료로 워드프레스시작하기
무료로 워드프레스시작하기Sukjin Yun
 
Ldap serise v1
Ldap serise v1Ldap serise v1
Ldap serise v1Sukjin Yun
 
Android studio
Android studioAndroid studio
Android studioSukjin Yun
 
20130709 gradle
20130709 gradle20130709 gradle
20130709 gradleSukjin Yun
 

Mehr von Sukjin Yun (20)

동영상입문
동영상입문동영상입문
동영상입문
 
Enterprise Java web Deployment Strategy
Enterprise Java web Deployment StrategyEnterprise Java web Deployment Strategy
Enterprise Java web Deployment Strategy
 
Geb quick start
Geb quick startGeb quick start
Geb quick start
 
BDD with Spock
BDD with SpockBDD with Spock
BDD with Spock
 
Scala quick start
Scala quick startScala quick start
Scala quick start
 
Spring java config
Spring java configSpring java config
Spring java config
 
Design pattern 옵저버
Design pattern 옵저버Design pattern 옵저버
Design pattern 옵저버
 
docker_quick_start
docker_quick_startdocker_quick_start
docker_quick_start
 
Rabbitmq install한글
Rabbitmq install한글Rabbitmq install한글
Rabbitmq install한글
 
Servlet3
Servlet3Servlet3
Servlet3
 
Weblogic install
Weblogic installWeblogic install
Weblogic install
 
무료로 워드프레스시작하기
무료로 워드프레스시작하기무료로 워드프레스시작하기
무료로 워드프레스시작하기
 
Start groovy
Start groovyStart groovy
Start groovy
 
Pygame
PygamePygame
Pygame
 
Annotation
AnnotationAnnotation
Annotation
 
마리아Db
마리아Db마리아Db
마리아Db
 
Intellij java
Intellij javaIntellij java
Intellij java
 
Ldap serise v1
Ldap serise v1Ldap serise v1
Ldap serise v1
 
Android studio
Android studioAndroid studio
Android studio
 
20130709 gradle
20130709 gradle20130709 gradle
20130709 gradle
 

Jnetpcap quickguide

  • 1. jnetpcap 개발가이드 java network packet capture api (jnetpcap) Quick start guide Originated by http://jnetpcap.com/ darkandark90@gmail.com
  • 3. Target Audience • 네트워크 프로그래밍을 하는 사람. • wireshark 쓰는 게 버거운 사람. • 개발서버가 없어서 고객 실서버에서 뭔가 해결해야 하는 사람(welcome to hell) - play network programing - want to have to make personalization network capture tool
  • 4. Test version JDK 1.7 64bit jnetpcap-1.3.b4-1.win64.zip -jdk버전은 상관없음. 1.6 32bit 권장 일반적으로 대상장비들이 32bit lpv4 신형장비인 경우 64bit ipv6 인 경우가 많으므로 만약 상업적으로 뭔가를 한다면 그냥 32bit 추천 유사 라이브러리 - winpcap - jpcap
  • 11. 개발환경 세팅#7 • Add jars 클릭 jnetpcap.ja r 파일 추가
  • 12. Api 사용 장비 조회 존재여부 //network device저장용 • List<PcapIf> alldevs = new ArrayList<PcapIf>(); • StringBuilder errbuf = new StringBuilder(); • int r = Pcap.findAllDevs(alldevs, errbuf); • if (r == Pcap.NOT_OK || alldevs.isEmpty()) { • System.err.printf("Can't read list of devices, error is %s", errbuf • .toString()); • return; • }
  • 14. Device 조회결과 • #0: DeviceNPF_{940F2889-F79F-4438-807C- E745A91C0F2F} [VMware Virtual Ethernet Adapter] • #1: DeviceNPF_{47CC0E79-D78A-42F0-8A78- 7104AB62AA48} [Realtek PCIe GBE Family Controller] • #2: DeviceNPF_{F04CEA22-A7CC-406A-A27E- BF440554CBB6} [Realtek PCIe GBE Family Controller] • #3: DeviceNPF_{C2E8FF15-D8A3-4320-A70B- 011511818BC5} [VMware Virtual Ethernet Adapter]
  • 15. packet capture api PcapPacketHandler이용 • JPacketHandler<String> jpacketHandler = new JPacketHandler<String>() { • @Override • public void nextPacket(JPacket packet, String user) { • final JCaptureHeader header = packet.getCaptureHeader(); • System.out.printf( "packet caplen=%d wiredlen=%dn", header.caplen(), header.wirelen()); • System.out.println(packet.toString()); • } • }; • pcap.loop(10, jpacketHandler, "jpacket test"); • }
  • 16. packet capture 결과 • packet caplen=66 wiredlen=66 • Frame: • Frame: number = 0 • Frame: timestamp = 2013-05-05 01:56:06.805 • Frame: wire length = 66 bytes • Frame: captured length = 66 bytes • Frame: • Eth: ******* Ethernet - "Ethernet" - offset=0 (0x0) length=14 • Eth: • Eth: destination = 72:08:17:18:2e:23 • Eth: .... ..0. .... .... = [0] LG bit • Eth: .... ...0 .... .... = [2] IG bit • Eth: source = 00:25:22:a4:93:fe • Eth: .... ..0. .... .... = [0] LG bit • Eth: .... ...0 .... .... = [2] IG bit • Eth: type = 0x800 (2048) [ip version 4] • Eth: • Ip: ******* Ip4 - "ip version 4" - offset=14 (0xE) length=20 protocol suite=NETWORK • Ip: • Ip: version = 4 • Ip: hlen = 5 [5 * 4 = 20 bytes, No Ip Options] • Ip: diffserv = 0x0 (0) • Ip: 0000 00.. = [0] code point: not set • Ip: .... ..0. = [0] ECN bit: not set • Ip: .... ...0 = [0] ECE bit: not set • Ip: length = 52 • Ip: id = 0x14DB (5339) • Ip: flags = 0x2 (2) • Ip: 0.. = [0] reserved • Ip: .1. = [1] DF: do not fragment: set • Ip: ..0 = [0] MF: more fragments: not set • Ip: offset = 0 • Ip: ttl = 128 [time to live] • Ip: type = 6 [next: Transmission Control] • Ip: checksum = 0x0 (0) [incorrect: 0x4EA0] • Ip: source = 192.168.219.5 • Ip: destination = 116.34.135.120 • Ip: • Tcp: ******* Tcp offset=34 (0x22) length=32 중략….
  • 17. 미결.. filter 쓰는 방법을 추가해야 함…