ipwhois_cli.py and ipwhois_utils_cli.py are command line interfaces for the ipwhois library. When using pip to install ipwhois, the CLI scripts are installed to your Python environment Scripts directory.
- ipwhois_cli.py has full ipwhois.py functionality.
- ipwhois_utils_cli.py has full utils.py functionality.
- The others (net.py, rdap.py, whois.py, nir.py, asn.py) will be included in a future release.
- ipwhois_cli.py [-h] [--whois] [--exclude_nir] [--json] [--hr]
- [--show_name] [--colorize] [--timeout TIMEOUT] [--proxy_http "PROXY_HTTP"] [--proxy_https "PROXY_HTTPS"] [--inc_raw] [--retry_count RETRY_COUNT] [--asn_alts "ASN_ALTS"] [--asn_methods "ASN_METHODS"] [--extra_org_map "EXTRA_ORG_MAP"] [--skip_asn_description] [--depth COLOR_DEPTH] [--excluded_entities "EXCLUDED_ENTITIES"] [--bootstrap] [--rate_limit_timeout RATE_LIMIT_TIMEOUT] [--get_referral] [--extra_blacklist "EXTRA_BLACKLIST"] [--ignore_referral_errors] [--field_list "FIELD_LIST"] [--nir_field_list "NIR_FIELD_LIST"] --addr "IP"
ipwhois CLI interface
- optional arguments:
-h, --help show this help message and exit --whois Retrieve whois data via legacy Whois (port 43) instead of RDAP (default). --exclude_nir Disable NIR whois lookups (JPNIC, KRNIC). This is the opposite of the ipwhois inc_nir, in order to enable inc_nir by default in the CLI. --json Output results in JSON format. - Output options:
--hr If set, returns results with human readable key translations. --show_name If this and --hr are set, the key name is shown in parentheses afterits short value --colorize If set, colorizes the output using ANSI. Should work in most platform consoles. - IPWhois settings:
--timeout TIMEOUT The default timeout for socket connections in seconds. --proxy_http PROXY_HTTP The proxy HTTP address passed to request.ProxyHandler. User auth can be passed like "http://user:[email protected]:80" --proxy_https PROXY_HTTPS The proxy HTTPS address passed to request.ProxyHandler. User auth can be passed like "https://user:[email protected]:443" - Common settings (RDAP & Legacy Whois):
--inc_raw Include the raw whois results in the output. --retry_count RETRY_COUNT The number of times to retry in case socket errors, timeouts, connection resets, etc. are encountered. --asn_alts ASN_ALTS A comma delimited list of additional lookup types to attempt if the ASN dns lookup fails. Allow permutations must be enabled. Defaults to all: "whois,http". WARNING deprecated in favor of new argument asn_methods. --asn_methods ASN_METHODS List of ASN lookup types to attempt, in order. Defaults to all ['dns', 'whois', 'http']. --extra_org_map EXTRA_ORG_MAP Dictionary mapping org handles to RIRs. This is for limited cases where ARIN REST (ASN fallback HTTP lookup) does not show an RIR as the org handle e.g., DNIC (which is now the built in ORG_MAP) e.g., {"DNIC": "arin"}. Valid RIR values are (note the case-sensitive - this is meant to match the REST result): 'ARIN', 'RIPE', 'apnic', 'lacnic', 'afrinic' --skip_asn_description Don't run an additional query when pulling ASN information via dns (to get the ASN description). This is the opposite of the ipwhois get_asn_description argument, in order to enable get_asn_description by default in the CLI. - RDAP settings:
--depth COLOR_DEPTH If not --whois, how many levels deep to run RDAP queries when additional referenced objects are found. --excluded_entities EXCLUDED_ENTITIES If not --whois, a comma delimited list of entity handles to not perform lookups. --bootstrap If not --whois, performs lookups via ARIN bootstrap rather than lookups based on ASN data. ASN lookups are not performed and no output for any of the asn* fields is provided. --rate_limit_timeout RATE_LIMIT_TIMEOUT If not --whois, the number of seconds to wait before retrying when a rate limit notice is returned via rdap+json. - Legacy Whois settings:
--get_referral If --whois, retrieve referral whois information, if available. --extra_blacklist EXTRA_BLACKLIST If --whois, A list of blacklisted whois servers in addition to the global BLACKLIST. --ignore_referral_errors If --whois, ignore and continue when an exception is encountered on referral whois lookups. --field_list FIELD_LIST If --whois, a list of fields to parse: ['name', 'handle', 'description', 'country', 'state', 'city', 'address', 'postal_code', 'emails', 'created', 'updated'] - NIR (National Internet Registry) settings:
--nir_field_list NIR_FIELD_LIST If not --exclude_nir, a list of fields to parse: ['name', 'handle', 'country', 'address', 'postal_code', 'nameservers', 'created', 'updated', 'contact_admin', 'contact_tech'] - Input (Required):
--addr IP An IPv4 or IPv6 address as a string.
ipwhois_cli.py --addr 74.125.225.229 --hr --show_name --colorize --depth 1
- ipwhois_utils_cli.py [-h] [--ipv4_lstrip_zeros IPADDRESS]
- [--calculate_cidr IPADDRESS IPADDRESS] [--get_countries] [--get_country COUNTRYCODE] [--ipv4_is_defined IPADDRESS] [--ipv6_is_defined IPADDRESS] [--unique_everseen ITERABLE] [--unique_addresses FILEPATH] [--colorize]
ipwhois utilities CLI interface
- optional arguments:
-h, --help show this help message and exit --ipv4_lstrip_zeros IPADDRESS Strip leading zeros in each octet of an IPv4 address. --calculate_cidr IPADDRESSRANGE Calculate a CIDR range(s) from a start and end IP address. Separate start and end address arguments by space. --get_countries Output a dictionary containing ISO_3166-1 country codes to names. --get_country COUNTRYCODE Output the ISO_3166-1 name for a country code. --ipv4_is_defined IPADDRESS Check if an IPv4 address is defined (in a reserved address range). --ipv6_is_defined IPADDRESS Check if an IPv6 address is defined (in a reserved address range). --unique_everseen ITERABLE List unique elements from input iterable, preserving the order. --unique_addresses FILEPATH Search an input file, extracting, counting, and summarizing IPv4/IPv6 addresses/networks. - Output options:
--colorize If set, colorizes the output using ANSI. Should work in most platform consoles.
>>>> ipwhois_utils_cli.py --ipv4_lstrip_zeros 074.125.025.229 74.125.25.229
>>>> ipwhois_utils_cli.py --calculate_cidr 192.168.0.9 192.168.5.4 Found 12 CIDR blocks for (192.168.0.9, 192.168.5.4): 192.168.0.9/32 192.168.0.10/31 192.168.0.12/30 192.168.0.16/28 192.168.0.32/27 192.168.0.64/26 192.168.0.128/25 192.168.1.0/24 192.168.2.0/23 192.168.4.0/24 192.168.5.0/30 192.168.5.4/32
>>>> ipwhois_utils_cli.py --get_countries Found 252 countries: AD: Andorra AE: United Arab Emirates AF: Afghanistan AG: Antigua and Barbuda AI: Anguilla AL: Albania AM: Armenia ...
>>>> ipwhois_utils_cli.py --get_country US Match found for country code (US): United States
>>>> ipwhois_utils_cli.py --ipv4_is_defined 192.168.0.1 192.168.0.1 is defined: Name: Private-Use Networks RFC: RFC 1918
>>>> ipwhois_utils_cli.py --ipv6_is_defined fc00:: fc00:: is defined: Name: Unique Local Unicast RFC: RFC 4193
>>>> ipwhois_utils_cli.py --unique_everseen [4,2,6,4,6,2] Unique everseen: [4, 2, 6]
>>>> ipwhois_utils_cli.py --unique_addresses /tmp/some.file Found 477 unique addresses: 74.125.225.229: Count: 5, Ports: {'22': 1} 2001:4860::/32: Count: 4, Ports: {'443': 1, '80': 2} 2001:4860:4860::8888: Count: 3, Ports: {} ...