EasyRPZ is a command-line tool written in Go for converting a list of domain names and IP addresses into a Response Policy Zone (RPZ) file format. It allows you to create an RPZ file that can be used for DNS filtering and blocking specific domains.
easyrpz \
-i inputFile1.hosts \
-i http://example.com/inputFile2.hosts \
-e excludeFile1.txt \
-e http://example.com/excludeFile2.txt \
-o outputFile.rpz
This command will convert the input hosts files inputFile1.hosts
and inputFile2.hosts
(retrieved from the URL http://example.com/inputFile2.hosts
), exclude the domains listed in excludeFile1.txt
and excludeFile2.txt
(retrieved from the URLs http://example.com/excludeFile2.txt
), and generate the RPZ file outputFile.rpz
.
-i
: Input file paths or URLs (required, can be specified multiple times)-o
: Output file path (required)-e
: File paths or URLs containing domains to exclude (optional, can be specified multiple times)-w
: Include wildcard blocking
EasyRPZ is available as a prebuilt binary. You can download and place it in the /usr/local/bin
folder, run the following command:
sudo wget -O /usr/local/bin/easyrpz \
https://github.com/pure-dns/easyrpz/raw/main/easyrpz
sudo chmod +x /usr/local/bin/easyrpz
To remove the easyrpz
binary, simply run the following command:
sudo rm /usr/local/bin/easyrpz
- Converts a list of domain names and IP addresses into RPZ format.
- Excludes specific domains using exclude files.
- Handles duplicate hosts by stripping duplicates.
- Generates RPZ file header with the current date.
You will need Go (version 1.16 or above).
Run the following command to build the program:
./make
After the build is successful, you will have an executable file named easyrpz
in the current directory.
The generated RPZ file starts with a header section. The header includes the following information:
- Serial: Current date in the format YYYYMMDD.
- Refresh: 2 weeks (default value).
- Retry: 2 weeks (default value).
- Expiry: 2 weeks (default value).
- Minimum: 2 weeks (default value).
- NS: NS record pointing to localhost.
This project is licensed under the MIT License. See the LICENSE file for details.