Free my mind

qt에서의 libpcap 프로그래밍(2) 본문

pcap programing

qt에서의 libpcap 프로그래밍(2)

김뿡빵 2018.05.25 01:21

pcap에 대해서 공부하면서 알게된 것들을 적겠다.



우선 #include <pcap/pcap.h>를 이용해서 헤더를 추가한다.




디바이스이름을 얻어오기 위해서 pcap_lookupdev를 한다.


dev에 디바이스 이름이 저장된다.


포인터로 선언되는 변수는 가변적인 길이를 가질 수 있다. 


ebuf에는 오류값이 저장된다.










디바이스에 대한 ip 정보와 mask 정보를 갖고올때는 lookupnet함수를 이용한다.


함수의 매개변수에 &문자를 쓰는것은 원본값의 주소를 보낸다는 뜻인데,


main 밖에 있는 함수가 주소에 접근해서, main에서 선언된 변수에 직접 접근하여 변경할수 있다.


그렇기 때문에, netp의 값이 리턴값을 받지 않고도 값이 직접 바뀐다.(초급문법)



lookupnet 반환값이 res에 저장되는데, 


0 이면 정상적으로 함수가 실행됐다는 것이고, 이외의 값은 오류가 있다는것이다.


 if( res != 0 )

exit( 1 );


 같은 분기문을 넣어주면 좋다.










패킷 캡쳐를 위해서는, 현재 디바이스의 핸들값을 얻어와야한다.


핸들값의 구조체인 pcap_t형 pcd라는 변수를 포인터 선언하고, 


pcap_open_live의 반환값으로 핸들값을 얻어올 수 있다.









0 Comments
댓글쓰기 폼