Metadata-Version: 2.4
Name: nmine
Version: 3.3.0
Summary: Combines nmap output and DNS data to produce HTTP[S] URLs of interest.
Author-email: Steve Benson <steve@xelphene.net>
Project-URL: Homepage, https://github.com/xelphene/nmine
Project-URL: Bug Tracker, https://github.com/xelphene/nmine/issues
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: OS Independent
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: ipcidrtree>=1.3.0
Dynamic: license-file

# nmine

nmine searches files for substrings that appear to be valid DNS names. It
resolves them and outputs the result if the address it resolves to is of
interest.

A possible name will only be considered a valid DNS name if it ends with a
known TLD (see the -t and -T options).  If the -s option is also specified,
then a possible name must also end with one of the strings specified with
that option.

# Examples / Description

Let's say you have some arbitrary file (or directories of files) containing
DNS names of some sort:

```
> ls
blah.txt
> cat blah.txt 
nothing 
The quick brown fox yahoo.com jumps over the lazy dog. hurricanelabs.com]
Lorem ipsum dolor sit amet, ex wisi elitr eruditi pro.   129831; asdf
google.com!zzzhomero has ei
;sad0uf23 www.github.com 090
```

You're interested in any names which resolve to any address in 192.0.0.0/8.
You put this in a file called "SCOPE" (or any file specified with the -i
option):

```
>> cat > SCOPE
192.0.0.0/8
```

You then run nmine while in the above directory, and any names resolving to
your network(s) of interest are output:

```
> nmine
hurricanelabs.com.                       600 IN A 192.230.81.48
www.github.com.                          600 IN A 192.30.253.112
```

# Options

* -i (filename): Name of a file containing IPv4 networks of interest.

* -n (address): Name or address of a DNS server to send all queries to.

* -f hosts|zone: Output format. "zone" is like BIND zone files or dig
output.  "hosts" is like /etc/hosts.

* -t (TLD): Specify additional TLDs to consider valid. May be specified
multiple times.

* -T: Do NOT automatically consider IANA TLDs valid. The only TLDs
considered valid will be those specified with -t.

* -s: Only consider names with this ending to be valid names at all. May be
specified multiple times.

* -z (string): Ignore file paths starting with this string. May be
specified multiple times.

# Copyright and License

Copyright (C) 2026 Steve Benson

nmine is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 3, or (at your option) any later
version.

nmine is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
details.

You should have received a copy of the GNU General Public License along with
this program; see the file LICENSE.  If not, see <http://www.gnu.org/licenses/>.
