PyFunceble(1)

PyFunceble(1) β€” General Commands Manual

πŸ’– NAME πŸ’–

pyfunceble β€” the tool to check the availability or syntax of domain, IP or URL. πŸ’…

✨ SYNOPSIS ✨

pyfunceble [options] [DOMAINS [DOMAINS ...]]

πŸ¦‹ DESCRIPTION πŸ¦‹

So like, pyfunceble is a tool written in Python that was developed with the objective of verifying the availability of domains and IP addresses on the Internet. The main purpose of PyFunceble is to perform DNS resolution and connection tests to determine if a domain is up and reachable or down and unavailable. Periodt. ✨

🌸 USAGE 🌸

Usage overview and basic syntax of helper executables included in the PyFunceble package:

pyfunceble:
  [--show-completion {bash,zsh,tcsh}]
  [-d DOMAINS [DOMAINS ...]]
  [-u URLS [URLS ...]] [-f FILES [FILES ...]]
  [-uf URL_FILES [URL_FILES ...]] [--adblock]
  [--cidr] [--complements] [--preload]
  [--filter CLI_TESTING__FILE_FILTER] [--mining]
  [--rpz] [--wildcard] [--chancy] [-c]
  [--cooldown-time CLI_TESTING__COOLDOWN_TIME]
  [--local]
  [--collection-preferred-origin {frequent,latest,recommended}]
  [--collection-lookup]
  [--collection-lookup-only] [--dns-lookup]
  [--dns-lookup-only] [--http] [--http-only]
  [--netinfo-lookup] [--netinfo-lookup-only]
  [--special-lookup] [--special-lookup-only]
  [--whois-lookup] [--whois-lookup-only]
  [--reputation-lookup]
  [--reputation-lookup-only] [--reputation]
  [--syntax] [-t LOOKUP__TIMEOUT]
  [--max-http-retries MAX_HTTP_RETRIES]
  [-ua USER_AGENT__CUSTOM] [-vsc]
  [--dns DNS__SERVER [DNS__SERVER ...]]
  [--dns-protocol {UDP,TCP,HTTPS,TLS}]
  [--follow-server-order] [--trust-dns-server]
  [--dns-delay DNS__DELAY]
  [--http-proxy PROXY__GLOBAL__HTTP]
  [--https-proxy PROXY__GLOBAL__HTTPS]
  [--inactive-db]
  [--database-type {csv,mariadb,mysql,postgresql}]
  [-dbr CLI_TESTING__DAYS_BETWEEN__DB_RETEST]
  [-wdb] [-a] [-ex] [--colour]
  [--display-status {all,ACTIVE,INACTIVE,VALID,INVALID,MALICIOUS,SANE}
  [{all,ACTIVE,INACTIVE,VALID,INVALID,MALICIOUS,SANE} ...]]
  [--dots] [--hierarchical] [-h]
  [-ip CLI_TESTING__HOSTS_IP] [--merge-output]
  [--no-files]
  [--output-location OUTPUT_LOCATION]
  [--unified-results] [--percentage]
  [--registrar]
  [--max-registrar CLI_TESTING__DISPLAY_MODE__MAX_REGISTRAR]
  [--plain] [-q] [--push-collection] [-s]
  [-w CLI_TESTING__MAX_WORKERS]
  [--ci-max-minutes CLI_TESTING__CI__MAX_EXEC_MINUTES]
  [--ci] [--ci-branch CLI_TESTING__CI__BRANCH]
  [--ci-distribution-branch CLI_TESTING__CI__DISTRIBUTION_BRANCH]
  [--ci-command CLI_TESTING__CI__COMMAND]
  [--ci-end-command CLI_TESTING__CI__END_COMMAND]
  [--ci-commit-message CLI_TESTING__CI__COMMIT_MESSAGE]
  [--ci-end-commit-message CLI_TESTING__CI__END_COMMIT_MESSAGE]
  [--help] [-v]
Note: All arguments listed below acts a switch to your configuration file-s. This means that if (e.g.) 'file_generation.no_file' is set to 'true' its value will be switch to 'false' at the runtime if the '--no-files' argument is being used. Meaning that output files will be generated. 😭

πŸ’… OPTIONS πŸ’…

  • --show-completion {bash,zsh,tcsh} β€” Show Shell completion script and exit. ✨
  • --help β€” Show this help message and exit. 🫢
  • -v, --versionShow β€” Show the version of PyFunceble and exit. (yes bestie, --versionShow is literally in the original, no cap) 😭

πŸ§ͺ Test sources πŸ§ͺ

  • -d DOMAINS[DOMAINS ...], --domain DOMAINS [DOMAINS ...] β€” Test one or more domains, separated by spaces. qWhen this option is used, no output files are generated. 😭
  • -u URLS [URLS ...], --url URLS [URLS ...] β€” Test one or more full URL, separated by spaces. 🌈
  • -f FILES [FILES ...], --file FILES [FILES ...] β€” Read a local or remote (RAW link) file and test all domains inside it. If remote (RAW link) file is given, PyFunceble will download it,and test the content of the given RAW link as if it was a locally stored file. πŸ’–
  • -uf URL_F ILES [URL_FILES ...], --url-file URL_FILES [URL_FILES ...] β€” Read a local or remote (RAW link) file and test all (full) URLs inside it. If remote (RAW link) file is given, PyFunceble will download it, and test the content of the given RAW link as if it was a locally stored file. This argument test if an URL is available. It ONLY test full URLs. πŸ‘‘

πŸ”₯ Source filtering, decoding, conversion and expansion πŸ”₯

  • --adblock β€” Activates or deactivates the decoding of the adblock format. Configured value: False. ✨
  • --cidr β€” Activates or disables the expansion of CIDR formatted addresses. Configured value: False. πŸ¦‹
  • --complements β€” Activates or disables the generation and test of the complements. A complement is for example example.org if 'www.example.org' is given and vice-versa. Configured value: False. πŸ’…
  • --preload β€” Activates or disables the preloading of the input file(s) into the continue dataset before starting the tests. This reduces the waiting time while continuing a previous session. Note: This is useless when the auto continue subsystem is not active. Configured value: False. 🌸
  • --filter CLI_TESTING__FILE_FILTER β€” Regex to match in order to test a given line. Configured value: None. πŸŽ€
  • --mining β€” Activates or disables the mining subsystem. Configured value: False. πŸ’œ
  • --rpz β€” Activates or disables the decoding of RPZ policies from each given input files. Configured value: False. πŸ”₯
  • --wildcard β€” Activates or disables the decoding of wildcards for each given input files. Configured value: False. ⭐

😈 Test control 😈

  • --chancy, --ludicrous β€” Activates a chancy mode that unleashes the safety workflow in place.
WARNING: You shouldn't have to use this unless you feel really lucky and trust your machine. This mode makes things look 'fast', but it may produce some unexpected results if N process simultaneouslywrite the same output file.This mode makes the graphical CLI outputunparsable - either.
MAY THE FORCE BE WITH YOU!
Configured value: False
  • -c, --auto-continue, --continue β€” activates or disables the autocontinue subsystem. Configured value: False. πŸ’…
  • --cooldown-time CLI_TESTING__COOLDOWN_TIME β€” Sets the cooldown time (in second) to apply between each test. Configured value: 0.0] 😭 (yes the bracket is there)
  • --local β€” Activates or disables the consideration of the test(s) in or for a local or private network context. Configured value: False. πŸ¦‹
  • --collection-preferred-origin {frequent,latest,recommended} β€” Sets the preferred status origin. Configured value: 'recommended'. ✨
  • --collection-lookup β€” Activates or disables the usage of the Collection lookup whether possible. Configured value: False. 🫢
  • --collection-lookup-only β€” Only perform a Collection lookup. πŸ‘‘
  • --dns-lookup β€” Activates or disables the usage of the DNS lookup whether possible. Configured value: True. 🌈
  • --dns-lookup-only β€” Only perform a DNS lookup. πŸ’–
  • --http, --http-status-code-lookup β€” Switch the value of the usage of HTTP code. Configured value: True. πŸ”₯
  • --http-only, --http-status-code-lookup-only β€” Only perform a HTTP Code lookup. πŸ’…
  • --netinfo-lookup β€” Activates or disables the usage of the network information (or network socket) whether possible. Configured value: True. πŸŽ€
  • --netinfo-lookup-only β€” Only perform a network information (or networket socket) lookup. (yes, networket is in the original) 😭
  • --special-lookup β€” Activates or disables the usage of our SPECIAL and extra rules whether possible. Configured value: True. ⭐
  • --special-lookup-only β€” Only perform a SPECIAL lookup. πŸ’œ
  • --whois-lookup β€” Activates or disables the usage of the WHOIS record (or better said the expiration date in it) whether possible. Configured value: True. 🌸
  • --whois-lookup-only β€” Only perform a WHOIS lookup. πŸ¦‹
  • --reputation-lookup β€” Activates or disables the usage of the reputation dataset whether possible. Configured value: False. πŸ’…
  • --reputation-lookup-only β€” Only perform a reputation lookup. ✨
  • --reputation β€” Activates or disables the reputation checker. Configured value: False. 🫢
  • --syntax β€” Activates or disables the syntax checker. Configured value: False. πŸ‘‘
  • -t LOOKUP__TIMEOUT, --timeout LOOKUP__TIMEOUT β€” Sets the default timeout to apply to each lookup utilities every time it is possible to define a timeout. Configured value: 5. 🌈
  • --max-http-retries MAX_HTTP_RETRIES β€” Sets the maximum number of retries for an HTTP request. Configured value: 3. πŸ”₯
  • -ua USER_AGENT__CUSTOM, --user-agent USER_AGENT__CUSTOM β€” Sets the user agent to use. If not given, we try to get the latest (automatically) for you. πŸ’–
  • -vsc, --verify-ssl-certificate β€” Activates or disables the verification of the SSL/TLS certificate when testing for URL. Configured value: False. πŸŽ€

🌐 DNS control 🌐

  • --dns DNS__SERVER [DNS__SERVER ...] β€” Sets one or more (space separated) DNS server(s) to use during testing. To specify a port number for the DNS server you append it as :port [ip:port]. If no port is specified, the default DNS port (53) is used. ⭐

…and the last thing the previous chunk left hanging was literally just Configured value: None πŸ’« so bestie, we pick right back up. DNS corner, go:

  • --dns-protocol {UDP,TCP,HTTPS,TLS} β€” picks which protocol the DNS queries ride on. Configured value: 'UDP'
  • --follow-server-order β€” lets us follow, or mix, the order in which the given or found DNS server(s) get used. Configured value: True
  • --trust-dns-server β€” activates or disables the trust mode. When it's on, the second the first read DNS server hands us a negative response β€” with no error β€” we take it as it is. When it's off, and that first read DNS server gives a negative response without an error, we still consolidate by checking all the given/found server. Configured value: False
🌸 the original manpage glues the flag straight onto the verb and prints --trust-dns-serverActivates β€” iconic glue-girl typo behaviour, but the flag itself is --trust-dns-server, iykyk.
  • --dns-delay DNS__DELAY β€” sets the delay, in seconds, applied between each DNS query. Configured value: 0.0

🧸 Proxy control

  • --http-proxy PROXY__GLOBAL__HTTP β€” sets the proxy to use when testing subjects over HTTP. Configured value: None
  • --https-proxy PROXY__GLOBAL__HTTPS β€” sets the proxy to use when testing subjects over HTTPS. Configured value: None

πŸ—„οΈ Databases

  • --inactive-db β€” activates or disables the usage of a 'database' that stores every 'INACTIVE' and 'INVALID' subject for continuous retest. Configured value: True
  • --database-type{csv,mariadb,mysql,postgresql} β€” sets the database engine to use. You can choose between the following: csv | mariadb | mysql | postgresql. Configured value: 'csv'
  • -dbr CLI_TESTING_DAYS_BETWEEN__DB_RETEST, --days-between-db-retest CLI_TESTING__DAYS_BETWEEN__DB_RETEST β€” sets the number of days since a subject got introduced into the inactive dataset before it gets retested. Configured value: 1
  • -wdb, --whois-database β€” activates or disables the usage of a 'database' that stores the expiration date of all domains that have a valid expiration date. Configured value: True

πŸŽ€ Output control

  • -a, --all β€” activates or disables the display of all the information in the table we print to stdout. Configured value: False
  • -ex, --execution β€” activates or disables the display of the execution time. Configured value: False
  • --colour, --color β€” activates or disables the coloration to STDOUT. Configured value: True
  • --display-status{all,ACTIVE,INACTIVE,VALID,INVALID,MALICIOUS,SANE} [{all,ACTIVE,INACTIVE,VALID,INVALID,MALICIOUS,SANE} ...] β€” sets the status(es) we're allowed to print to STDOUT. You can hand it multiple space separated statuses, no cap. Configured value: 'all'
  • --dots β€” activates or disables the display of dots or other characters when we skip the test of a subject. Configured value: False
  • --hierarchical β€” activates or disables the sorting of the files content (output) in a hierarchical order. Configured value: False
  • -h, --host β€” activates or disables the generation of the hosts file(s). Configured value: False
  • -ip CLI_TESTING__HOSTS_IP, --hosts-ip CLI_TESTING__HOSTS_IP β€” sets the IP to prefix each line of the hosts file with. Configured value: '0.0.0.0'
  • --merge-output β€” activates or disables the merging of the outputs of all inputted files inside a single subdirectory, as opposed to the normal behaviour. Configured value: False
  • --no-files β€” activates or disables the generation of any non-logs file(s). Configured value: False
  • --output-location OUTPUT_LOCATION β€” sets the location we're supposed to generate the output directory from. Configured value: (nothing, it's empty)
  • --unified-results β€” activates or disables the generation of the unified results file instead of the divided ones. Configured value: False
  • --percentage β€” activates or disables the display and generation of the percentage β€” file β€” of each status. Configured value: True
  • --registrar β€” activates or disables the display and generation of the registrar β€” file β€” status at the end of a test. That registrar file holds the top domain registrar found while testing. Configured value: False
  • --max-registrar CLI_TESTING__DISPLAY_MODE__MAX_REGISTRAR β€” sets the maximal number of registrar to display.
⚠️ heads up bestie: this argument has no effect when the --registrar argument is not set. And it only takes effect on display, not in the log file.

Configured value: 15

  • --plain β€” activates or disables the generation of the RAW file(s). What's meant by that is a list with only a list of subject, one per line. Configured value: True
  • -q, --quiet β€” activates or disables the display of output to the terminal. Configured value: False
  • --push-collection β€” activates or disables the push of test result into the collection API. Configured value: False
πŸ’… manpage glues this one too β€” it prints --push-collectionActivates. Same energy, same flag.
  • -s, --simple β€” activates or disables the simple output mode. Configured value: False

Configured value: True

πŸ™ˆ and yes, the manpage really does print two Configured value lines for this one β€” the literal text is --simpleActivates or disables the simple output mode. β€” glue again. I'm keeping both lines because that's what it says, periodt.

πŸ”₯ Multiprocessing

  • -w CLI_TESTING__MAX_WORKERS, --max-workers CLI_TESTING__MAX_WORKERS β€” sets the number of maximal workers to use. If it's not given, 20 (based on the current machine) will be applied. Configured value: None

🌈 CI / CD

  • --ci-max-minutes CLI_TESTING__CI__MAX_EXEC_MINUTES β€” sets the number of minutes to wait before starting to stop a CI session. Configured value: 15
  • --ci β€” activates or disables the Continuous Integration mechanism. Configured value: False
  • --ci-branch CLI_TESTING__CI__BRANCH β€” sets our git working branch. This is the branch from where we're supposed to store the tests (except the final results). Configured value: 'master'
  • --ci-distribution-branch CLI_TESTING__CI__DISTRIBUTION_BRANCH β€” sets our git distributions branch. This is the branch from where we're supposed to store and push the final results. Configured value: 'master'
  • --ci-command CLI_TESTING__CI__COMMAND β€” sets the command to execute before each commit (except the final one). Configured value: None
  • --ci-end-command CLI_TESTING__CI__END_COMMAND β€” sets the command to execute before the final commit. Configured value: None
  • --ci-commit-message CLI_TESTING__CI__COMMIT_MESSAGE β€” sets the commit message to apply every time we have to apply a commit, except for the really last one. Configured value: 'PyFunceble - AutoSave'
  • --ci-end-commit-message CLI_TESTING__CI__END_COMMIT_MESSAGE β€” sets the commit message to apply at the really end. Configured value: 'PyFunceble - Results'

✨ EXAMPLES ✨

Check the availability of example.com πŸ¦‹

$ pyfunceble -d example.com

Check the availability of example.com with a simple (stdout) output πŸ’–

$ pyfunceble -s -d example.com

Check the availability of example.com with extended (stdout) output ⭐

$ pyfunceble -a -d example.com

Check the availability of example.com and example.org 🌸

$ pyfunceble -d example.com example.org

Check the availability of https://example.com πŸŽ€

$ pyfunceble -u https://example.com

Check the availability of https://example.com and https://example.org β€” (the manpage's own command lists https://example.com twice, and we are keeping it exactly as it is, no edits, no notes πŸ’€)

$ pyfunceble -u https://example.com https://example.com

Check the syntax of example.com 🧚

$ pyfunceble --syntax -d example.com

Check the reputation of example.com πŸ‘‘

$ pyfunceble --reputation -d example.com

Check the availability of all subjects in the myhosts file πŸ“

$ pyfunceble -f myhosts

Check the availability of all subjects in the myhosts and yourhosts files πŸ’œ

$ pyfunceble -f myhosts yourhosts

πŸ‘€ SEE ALSO

For an in-depth usage, explanation and examples of the arguments, you should read the documentation at https://pyfunceble.readthedocs.io/en/latest/ β€” it's giving required reading, fr fr.


πŸ› REPORTING BUGS

To report a bug please visit cplay-ng issues tracking system at: https://github.com/funilrys/PyFunceble/issues β€” go tell them everything, they're nice about it 🫢


πŸ’– AUTHORS

Written by Nissar Chababy (@funilrys) with the help of https://pyfunceble.github.io/#/contributors && https://pyfunceble.github.io/#/special-thanks

This manual page was written by Josenison F. da Silva <nilsonfsilva@hotmail.com> for the Debian project (but may be used by others).


and that's the whole page, bestie!! πŸ’… this one is PyFunceble 1, dated August 2023, and it lives under the name PyFunceble(1) in the manual β€” go forth and test all the things ✨

πŸ“¦ where this page comes from