xmap a tool for Performing Internet-wide IPv6 & IPv4 Network Research Scanning
Installing and Building XMap
Installing via Package Manager
XMap operates on GNU/Linux, macOS, and BSD.
Installing with the most OS package managers is not integrated yet.
OS | |
---|---|
Fedora 19+ or EPEL 6+ | - |
Debian 8+ or Ubuntu 14.04+ | - |
Gentoo | - |
macOS (using Homebrew) | - |
Arch Linux | - |
Building from Source
Installing XMap Dependencies
XMap has the following dependencies:
- CMake – Cross-platform, open-source build system
- GMP – Free library for arbitrary precision arithmetic
- gengetopt – Command line option parsing for C programs
- libpcap – Famous user-level packet capture library
- flex and byacc – Output filter lexer and parser generator
- json-c – JSON implementation in C
- libunistring – Unicode string library for C
- libdnet – (macOS Only) Gateway and route detection
In addition, the following optional packages enable optional XMap functionality:
- hiredis – RedisDB support in C
Install the required dependencies with the following commands.
- On Debian-based systems (including Ubuntu):
- sudo apt-get install build-essential cmake libgmp3-dev gengetopt libpcap-dev flex byacc libjson-c-dev pkg-config libunistring-dev
On RHEL- and Fedora-based systems (including CentOS):
sudo yum install cmake gmp-devel gengetopt libpcap-devel flex byacc json-c-devel libunistring-devel
Development Notes
- Enabling development turns on debug symbols, and turns off optimizations. Release builds should be built with
-DENABLE_DEVELOPMENT=OFF
. - Enabling
log_trace
can have a major performance impact and should not be used except during early development. Release builds should be built with-DENABLE_LOG_TRACE=OFF
. - Redis support is not enabled by default. If you want to use XMap with Redis, you will first need to install hiredis. Then run cmake with
-DWITH_REDIS=ON
. Debian/Ubuntu has packaged hiredis aslibhiredis-dev
; Fedora and RHEL/CentOS have packaged it ashiredis-devel
. - Building packages for some systems like Fedora and RHEL requires a user-definable directory (buildroot) to put files. The way to respect this prefix is to run cmake with
-DRESPECT_INSTALL_PREFIX_CONFIG=ON
. - Manpages (and their HTML representations) are generated from the
.ronn
source files in the repository, using the ronn tool. This does not happen automatically as part of the build process; to regenerate the man pages you’ll need to runmake manpages
. This target assumes thatronn
is in your PATH. - Building with some versions of CMake may fail with
unable to find parser.h
. If this happens, try updating CMake. If it still fails, don’t clone XMap into a path that contains the string.com
, and try again. - XMap may be installed to an alternative directory, with the
CMAKE_INSTALL_PREFIX
option. For example, to install it in$HOME/opt
run
cmake -DCMAKE_INSTALL_PREFIX=$HOME/opt .
make -j4
make install