2012년 10월 10일 수요일

내 시스템에 설치된 Libpcap 버전 확인하기

과연 내 시스템에는 어떤 버전의 Libpcap 이 설치되어 있는 것인가? 필요에 따라 PCAP 라이브러리 버전 확인이 필요한 경우가 있다. 이럴때 쉽게 확인할 수 있는 방법 몇 가지를 적어본다.

1) ls 명령어로 라이브러리 디렉토리 살펴보기 

$ ls -l /usr/lib/*pcap*
or
$ ls -l /usr/lib/i386*/*pcap*

/usr/lib/i386-linux-gnu/libpcap.so.0.8
/usr/lib/i386-linux-gnu/libpcap.so
/usr/lib/i386-linux-gnu/libpcap.a
/usr/lib/i386-linux-gnu/libpcap.so.1.1.1

이 상황은 시스템에 따라 많이 달라질 수 있으므로, find 를 이용해 검색해 보아도 된다. 여기 예에서는 1.1.1 버전과 0.8 버전이 있는 것으로 추정할 수 있다.

2) 패키지 프로그램을 이용해 확인하기 

rpm 을 사용한다면 다음과 같이 pcap 문자열로 확인해 본다.


$ rpm -qa | grep pcap

데비안 계열이라면

$ apt-cache pkgnames | grep pcap

를 통해 설치되어 있는 패키지를 확인하고 출력되는 패키지 이름을 보고

$ apt-cache showpkg libpcap-dev

와 같이 세부적으로 살펴볼 수 있다.

3) ldconfig 를 통해 라이브러리 링크 연결을 확인해 본다.

$ ldconfig -p | grep pcap

4) libpcap 라이브러리를 이용해 직접 버전을 출력해 본다.

다음과 같이 pcap_lib_version() 을 이용하면 버전이 확인가능하다. 아래와 같이 간단하게 코딩하여 실행해 볼 수 있다.


#include <pcap/pcap.h>

int main() {

        const char *pcap_v;
        pcap_v = pcap_lib_version();

        printf("Libpcap Version: %s \n", pcap_v);

}

# gcc libpcap_ver.c -lpcap
# ./a.out
Libpcap Version: libpcap version 1.1.1

1.1.1 버전을 사용하고 있음을 확인할 수 있다.

댓글 2개:

  1. 안녕하세요^^ 제가 libpcap 소스 컴파일 하려고 하는데 pcap/pcap.h: 그런 파일이나 디렉터리가 없습니다 compilation terminated.
    이렇게 뜨네요.
    위에 버젼 확인하는 소스 쳐서 컴파일 해도 같은 문구가 뜨구요
    제꺼 버전은 확인 해보니까 libpcap.so.1.1.1
    이렇게 뜹니다. 뭐가 문제일까요 조언좀 부탁드립니다 ^^

    답글삭제
    답글
    1. libpcap 자체를 컴파일 하신 건가요? 아니면 libpcap 을 이용한 프로그램을 만들고 컴파일 하신건가요? libpcap 자체를 컴파일 하시는 거라면 pcap/pcap.h 가 나올거 같지 않은데요. 그리고 버전이 1.1.1 있다고 하시는거 보면 이미 설치가 되어 있고 libpcap 이용해서 컴파일 하시려는걸로 생각됩니다. 해당 헤더파일과 라이브러리 경로는 올바르게 지정하셨는지요? 컴파일시 -I 로 헤더 파일 경로를 지정하면 크게 문제 없어보입니다.

      삭제