Skip to main content

Lightweight package to parse host inputs for iteration.

Project description

IPParser

The IPParser Python library was created to simplify accepting IP addresses, DNS names, and target / host information in security or network based tooling.

User inputs are parsed to provide an iterable list for further action. If called with resolve=True, ipparser will attempt to perform an "A" record lookup and return the first resolved address associated with the host.

Inputs:

IPParser currently accepts the following user inputs:

  • Single IP (192.168.1.10)
  • IP ranges (192.168.1.1-55)
  • Multiple IP's (192.168.1.3,192.168.1.7,m8sec.dev)
  • CIDR Ranges /8-/32 (192.168.1.0/24)
  • URL's (https://m8sec.dev)
  • IP:Port (192.168.1.1:8080)
  • DNS Names (m8sec.dev)
  • TXT files (Containing any of the items listed)
  • Nmap XML Reports
  • Read from STDIN

Install

pip3 install ipparser

OR

git clone https://github.com/m8sec/ipparser
cd ipparser
python3 setup.py install

(Primary) Usage:

The IPParser function can be called with the following arguments (shown with their default values):

  • open_ports=False - Return IP:Port notation for all open ports found (Nmap XML only)
  • exit_on_error=True - Exit on error while parsing user input.
  • resolve=False - Resolve any DNS names identified, to IPv4 addresses, and append to output.
  • ns=[] - Define name servers for DNS lookups.

Examples

Standard Usage

>>> from ipparser import ipparser
>>> ipparser('192.168.1.3-5')
['192.168.1.3', '192.168.1.4', '192.168.1.5']

>>> ipparser('yahoo.com',resolve=True)
['74.6.143.26']


>>> ipparser('192.168.1.1,yahoo.com')
['192.168.1.1', 'yahoo.com']

Argparse Integration - Required Positional Argument:

from ipparser import ipparser
from argparse import ArgumentParser

args = ArgumentParser(description='ipparser integration with argparse')
args.add_argument(dest='positional_host', nargs='+', type=lambda x: ipparser(x, resolve=False), help='Host Input')
args = args.parse_args()
Namespace(positional_host=[['192.168.1.1']])

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ipparser-1.0.1.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

ipparser-1.0.1-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file ipparser-1.0.1.tar.gz.

File metadata

  • Download URL: ipparser-1.0.1.tar.gz
  • Upload date:
  • Size: 5.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for ipparser-1.0.1.tar.gz
Algorithm Hash digest
SHA256 3a3b472b04d8a14e6a7b25c78c9831ecef81644908a739c9889e5e46dc121f00
MD5 36d4ceb391735244811a5987945e2c04
BLAKE2b-256 6c328471cdcac6c86948951c161b4f40c7d650cff30fa21fce6a2795348b4904

See more details on using hashes here.

File details

Details for the file ipparser-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: ipparser-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 7.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for ipparser-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 397e71247862665b6f00638647d53acda593e56708267793c14a20d3db01958d
MD5 7e653f69682acb6463caddbc3f90cdd8
BLAKE2b-256 a7f54950331ec785df3765cee4f85a95afa0a92eb7de01d3b1da6a53efb4dd8a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page