Showing posts with label libpcap. Show all posts
Showing posts with label libpcap. Show all posts

Friday, April 15, 2011

How to install libpcap on latest Ubuntu

I haven't used libpcap since I posted this blog last time (2011). But many people may not get it work following the old steps below. Therefore, I tried to install libpcap myself on the latest Ubuntu 12.10.

Here are the steps:
  1. Download libpcap-1.3.0.tar.gz from http://www.tcpdump.org/ and decompress it;
  2. Download flex-2.5.37.tar.gz from http://flex.sourceforge.net/ and decompress it;
  3. Download bison-2.7.tar.gz from ftp://ftp.gnu.org/gnu/bison/ and decompress it;
  4. Download m4-1.4.16.tar.gz from ftp://ftp.gnu.org/gnu/m4/ and decompress it;
  5. Then, enter into directories m4-1.4.16, bison-2.7, flex-2.5.37 and libpcap-1.3.0 in order, and execute the following commands:
    1. $ sudo ./configure
    2. $ sudo make
    3. $ sudo make install
  6. ** Basically, just find the latest version from these websites to download.
Until now, installation is finished. You may test it with the following code (test.c):

    #include <stdio.h>
    #include <pcap.h>

    int main(int argc, char *argv[])
    {
        char *dev, errbuf[PCAP_ERRBUF_SIZE];

        dev = pcap_lookupdev(errbuf);
        if (dev == NULL) {
            fprintf(stderr, "Couldn't find default device: %s\n", errbuf);
            return(2);
        }
        printf("Device: %s\n", dev);
        return(0);
    }


Commands to compile and execute this program:
  1. $ gcc test.c -lpcap
  2. $ sudo ./a.out
  3. ** use sudo to execute the program, because of permission required
Expected output should be like this:
                                                          Device: eth0

One problem you may come across during running the program:

"error while loading shared libraries: libpcap.so.1: cannot open shared object file: No such file or directory"

This is because we have installed using .tar.gz, then library is installed in /usr/local/lib directory.

Solution:

Open /etc/ld.so.conf as root, and add the following two lines to it:

/usr/local/lib
/usr/lib

Then execute command:

$ sudo ldconfig

Now compile and run test.c again, and you may get the result.

-------------------------------------------------------------------------------------------------------------------------------------

Old Version:

Libpcap is a portable C/C++ library for network traffic capture. Although libpcap is primarily a packet-capturing tool, it also can create and manipulate packets from saved files, which can then be used in the wide variety of tools that support the libpcap format.

In this article, I will show how to install libpcap on Ubuntu.

  1. Download libpcap-1.0.0.tar.gz (512.0KB) from www.tcpdump.org, and decompress it (tar zxvf libpcap-1.0.0.tar.gz) to your self-defined directory;
  2. Download flex-2.5.35.tar.gz (1.40MB) from flex.sourceforge.net, and decompress it (tar zxvf flex-2.5.35.tar.gz) to your self-defined directory;
  3. Download bison-2.4.1.tar.gz (1.9MB) from ftp.gnu.org/gnu/bison/, and decompress it (tar zxvf bison-2.4.1.tar.gz) to your self-defined directory;
  4. Download  m4-1.4.13.tar.gz (1.2MB) from ftp.gnu.org/gnu/m4/, and decompress it (tar zxvf m4-1.4.13.tar.gz) to your self-defined directory;
  5. Then, enter into the directories m4-1.4.13, bison-2.4.1, flex-2.5.35, libpcap-1.0.0 in the order, and execute the following commands:
    1. (sudo) ./configure
    2. (sudo) make
    3. (sudo) make install
Now, everything should work well. And you can get a .c file to test your installation.

Notice: installing libpcap and running your programs should have an access to your root priority.
Good Luck! ^_^