Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
04d6d96
Create LICENSE
ch604 Jun 30, 2020
355e99d
separate license, integrate all pending commits
Jun 30, 2020
215493e
remove nszones
Jun 30, 2020
01f6d85
double percent
Jun 30, 2020
6daaec2
parallel processing
Jun 30, 2020
dc47c8b
output of blacklist hits
Jul 1, 2020
8a9d121
remove nonworking uribl and add touch to output file
Jul 1, 2020
130bd2d
correction to output file, job count to settings
Jul 1, 2020
3e21218
increase default job count to 2 per core
Jul 1, 2020
bd85847
clean up output files, handle additional invalid counter inside paral…
Jul 1, 2020
f0fda40
license update
Jul 1, 2020
523c0a5
Update README.md
ch604 Jul 1, 2020
5488c8a
blacklist to blocklist
Jul 6, 2020
07738be
merge readme
Jul 6, 2020
3a31fef
rhel/debian install support for parallel. error exit code increased s…
Sep 15, 2020
41f022e
blacklists to blocklists
awalilko Mar 5, 2024
e1f87b1
blacklists to blocklists
awalilko Mar 5, 2024
1353333
clean up comments
awalilko Mar 19, 2024
ca778d1
help text update
awalilko Oct 17, 2024
7e4c82e
help notes
awalilko Oct 18, 2024
5dee9e1
integrate pull requests 30 and 31 from upstream
awalilko Dec 27, 2024
fc67f71
Merge pull request #2 from IntellexApps/master
ch604 Dec 27, 2024
4969ec1
Remove some no longe active blocklists
tbsmark86 Apr 30, 2025
ec90f98
shellchecking, bash and printf efficiencies
awalilko May 28, 2025
cf47519
allow cli adjustment of parallelism
awalilko May 28, 2025
0377c6e
version increment
awalilko May 28, 2025
a3583de
Update README.md
ch604 May 28, 2025
a29fac9
too much e
awalilko May 30, 2025
7376a38
Merge branch 'master' of github.com:ch604/blcheck
awalilko May 30, 2025
45426e0
unneeded quoting
awalilko May 30, 2025
cd4d5bd
shellcheck ignores
awalilko May 30, 2025
6a31698
Merge pull request #3 from tbsmark86/master
ch604 Oct 30, 2025
ee9f24e
shellcheck
awalilko Dec 23, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
MIT License

Portions Copyright (c) 2018 Intellex
Portions Copyright (c) 2020 Oliver Mueller
Portions Copyright (c) 2020 Andrej Walilko

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
49 changes: 14 additions & 35 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
# blcheck

A powerful script for testing a domain or an IP against mailing black lists.
A powerful script for testing a domain or an IP against mailing block lists and allow lists.
Script will use dig if it is found. If dig is not found script will use host.


Features
--------------------

* More then __100 black lists__ already included!
* More then __280 block lists__ already included!
* Automatic distinction between __domain or IP__
* Performs __PTR validation__ (only if domain is supplied, does not work for IP)
* 3 verbose (-v) levels and a quiet (-q) mode
* The result of script is the number of servers which blacklisted the domain, so it can be used for any kind of __automated scripts or cronjobs__
* The exit code of script is the number of servers which blocklisted the domain, so it can be used for any kind of __automated scripts or cronjobs__
* Informative and pleasant output


Expand All @@ -32,50 +32,29 @@ If the IP is supplied, the PTR check cannot be executed and will be skipped.

<pre>
-d dnshost Use host as DNS server to make lookups
-l file Load blacklists from file, separated by space or new line
-c Warn if the top level domain of the blacklist has expired
-l file Load blocklists from file, separated by space or new line
-c Warn if the top level domain of the blocklist has expired
-v Verbose mode, can be used multiple times (up to -vvv)
-q Quiet modem with absolutely no output (useful for scripts)
-p Plain text output (no coloring, no interactive status)
-p Plain text output (no coloring, no interactive status, useful
for tee'd output to a text file)
-j num The number of parallel processes to use (default is 200%, or
2x system core count. See `man parallel` for details.)
-h The help you are just reading
</pre>

Result of the script is the number of blacklisted entries. So if the supplied
IP is not blacklisted on any of the servers the result is 0.
Exit code of the script is the number of blocklisted entries. So if the supplied
IP is not blocklisted on any of the servers the exit code is 0.


TODO
--------------------
1. Handle domains with multiple DNS entries.

Licence
--------------------
MIT License

Copyright (c) 2018 Intellex

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Credits
--------------------
Script has been written by the [Intellex](http://intellex.rs/en) team.
Contributors:
Additional contributors:
[Darko Poljak](https://github.com/darko-poljak)


[Oliver Mueller](https://github.com/ogmueller)
[Andrej Walilko](https://github.com/ch604)
Loading