1
0
mirror of https://github.com/nmap/nmap.git synced 2026-01-14 18:39:03 +00:00
dmiller 324965d1d2 Use a radix tree (trie) to match exclude addresses
Current exclusions list from --excludefile takes linear time to match
against. Using a trie structure, we can do matching in O(log n) time,
with a hard maximum of 32 comparisons for IPv4 and 128 comparisons for
IPv6. Each node of the trie represents an address prefix that all
subsequent nodes share; matching stops when one is matched exactly or
when the candidate address does not match any prefix of the addresses in
the trie.

For now, only numeric addresses without netmask are supported. We plan
to extend this to addresses with netmasks, including resolved names.
Storing IPv4 ranges and wildcards in this structure would be
prohibitively complex, so the existing linear match method will be used
for those. It is unlikely that any users are using large exclusion lists
of these types of specifications, so performance impact is small.

Potential future features could use the trie structure to implement
custom routing or scope-limiting.

This was a todo list item based on this report:
https://seclists.org/nmap-dev/2012/q4/420
2018-10-31 14:01:34 +00:00
2018-10-17 00:30:14 +00:00
2018-03-16 20:55:32 +00:00
2018-10-09 17:06:03 +00:00
2017-09-19 17:01:40 +00:00
2016-11-21 16:08:54 +00:00
2018-10-16 05:18:31 +00:00
2018-09-27 02:39:50 +00:00
2018-09-25 15:16:36 +00:00
2018-09-28 23:42:55 +00:00
2018-10-08 20:49:20 +00:00
2014-06-26 20:12:54 +00:00
2018-03-26 14:59:41 +00:00
2018-07-13 18:18:27 +00:00
2017-04-30 13:18:07 +00:00
2018-10-19 20:31:24 +00:00

Nmap Build Status

Nmap is released under a custom license, which is based on (but not compatible with) GPLv2. The Nmap license allows free usage by end users, and we also offer a commercial license for companies that wish to redistribute Nmap technology with their products. See Nmap Copyright and Licensing for full details.

The latest version of this software as well as binary installers for Windows, macOS, and Linux (RPM) are available from Nmap.org

Full documentation is also available on the Nmap.org website.

Questions and suggestions may be sent to the Nmap-dev mailing list.

Installing

Ideally, you should be able to just type:

./configure
make
make install

For far more in-depth compilation, installation, and removal notes, read the Nmap Install Guide on Nmap.org.

Using Nmap

Nmap has a lot of features, but getting started is as easy as running nmap scanme.nmap.org. Running nmap without any parameters will give a helpful list of the most common options, which are discussed in depth in the man page. Users who prefer a graphical interface can use the included Zenmap front-end.

Contributing

Information about filing bug reports and contributing to the Nmap project can be found in the HACKING and CONTRIBUTING.md files.

Languages
C 37.8%
Lua 28.1%
C++ 16.7%
Shell 5.8%
Python 4.2%
Other 7.1%