]> git.ipfire.org Git - location/libloc.git/commitdiff
Add README.md
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 4 Mar 2024 12:39:23 +0000 (12:39 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 4 Mar 2024 12:39:23 +0000 (12:39 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Makefile.am
README.md [new file with mode: 0644]

index a7d1c4f461b0f1a6ab3f24b5af9fc6781bcbedff..65b3a76d8db67917b123f419aac3c254fd4e7551 100644 (file)
@@ -88,6 +88,7 @@ po/POTFILES.in: Makefile
                sed -e "s@$(abs_srcdir)/@@g" | LC_ALL=C sort > $@
 
 EXTRA_DIST += \
+       README.md \
        examples/private-key.pem \
        examples/public-key.pem \
        examples/python/create-database.py \
diff --git a/README.md b/README.md
new file mode 100644 (file)
index 0000000..36c8144
--- /dev/null
+++ b/README.md
@@ -0,0 +1,47 @@
+# **_`libloc`_** - IP Address Location
+
+[Home](https://www.ipfire.org/location)
+
+`libloc` is a library for fast and efficient IP address location.
+
+It offers:
+
+- **The Fastest Lookups**: O(1) lookup time for IP addresses using a binary tree structure.
+- **Low Memory Footprint**: The database is packed in a very efficient format.
+- **Security**: Integrated signature verification for data integrity.
+- **Maintainability**: Automatic updates.
+- **Standalone**: No external dependencies, easy to integrate.
+
+`libloc` is ideal for:
+
+- Firewalls
+- Intrusion Prevention/Detection Systems (IPS/IDS)
+- Web Applications
+- Network Management Tools
+
+The publicly available daily updated database stores information about:
+
+- The entire IPv6 and IPv4 Internet
+- Autonomous System Information including names
+- Country Codes, Names and Continent Codes
+
+## Command Line
+
+`libloc` comes with a command line tool which makes it easy to test the library or
+integrate it into your shell scripts. location(8) knows a couple of commands to retrieve
+country or Autonomous System of an IP address and can generate lists of networks to be
+imported into other software.
+
+`location (8)` is versatile and very easy to use.
+
+## Language Bindings
+
+`libloc` itself is written in C. There are bindings for the following languages available:
+
+- Python 3
+- Lua
+- Perl
+
+`libloc` comes with native Python bindings which are used by its main command-line tool
+location. They are the most advanced bindings as they support reading from the database
+as well as writing to it.