fedi-meta/main.py

66 wiersze
2.6 KiB
Python
Czysty Zwykły widok Historia

2023-07-03 03:14:57 +00:00
from functions import plaintext_formatter, whois_lookup, iptables_generator, json_formatter
import argparse
2023-06-30 05:40:29 +00:00
if __name__ == "__main__":
2023-07-19 02:54:39 +00:00
argParser: argparse.ArgumentParser = argparse.ArgumentParser()
2023-07-03 03:14:57 +00:00
argParser.add_argument("-f", "--format",
default="iptables",
const="iptables",
nargs="?",
type=str,
choices=("iptables", "plain", "jsonl"),
help="Output format of IP address list (default: %(default)s)")
2023-07-19 02:54:39 +00:00
argParser.add_argument("-p", "--policy",
default="DROP",
const="DROP",
nargs="?",
type=str,
choices=("DROP", "REJECT", "ACCEPT"),
2023-07-19 04:24:51 +00:00
help="iptables policy for handling incoming packets (default: %(default)s)")
argParser.add_argument("--iptables-path",
default="iptables",
const="iptables",
nargs="?",
type=str,
help="iptables path (default: %(default)s)")
argParser.add_argument("--ip6tables-path",
default="ip6tables",
const="ip6tables",
nargs="?",
type=str,
help="ip6tables path (default: %(default)s)")
argParser.add_argument("--sudo-path",
default="sudo",
const="sudo",
nargs="?",
type=str,
help="sudo path (default: %(default)s)")
2023-07-19 02:54:39 +00:00
2023-07-03 03:14:57 +00:00
args = argParser.parse_args()
2023-06-30 05:40:29 +00:00
addresses: list[dict] = []
# Get IP Addresses To Ban
for address in whois_lookup.get_ips():
addresses.append(address)
# Generate IP Table Rules
2023-07-03 03:14:57 +00:00
if args.format == "iptables":
# IP Tables Commands
2023-07-19 02:54:39 +00:00
for rule in iptables_generator.generate_iptable_rules(addresses=addresses, args=args):
2023-07-03 03:14:57 +00:00
print(rule)
elif args.format == "plain":
# Just Plain Addresses
2023-07-19 02:54:39 +00:00
for address in plaintext_formatter.format_addresses(addresses=addresses, args=args):
2023-07-03 03:14:57 +00:00
print(address)
elif args.format == "jsonl":
# JSON Formatted Addresses
2023-07-19 02:54:39 +00:00
for address in json_formatter.format_addresses(addresses=addresses, args=args):
2023-07-03 03:14:57 +00:00
print(address)
else:
print(f"Unknown format: `{args.format}`")