Skip to main content

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']])

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.2.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ipparser-1.0.2-py3-none-any.whl (6.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for ipparser-1.0.2.tar.gz
Algorithm Hash digest
SHA256 ff95fc506479848f93045a964dc200daace9c180b5fca827e4e8be474453675c
MD5 375621d1c09f53903e1c90d884eb2903
BLAKE2b-256 0f202a533471c467f78183e0a9a31dba8311ecdd41bf6d251bd5d79be4e93a4e

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for ipparser-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0e0a3bc05f23bfcafdc3fda69efa8fc0c4cf236c2e6283c908cc6407268aac14
MD5 d8bc0f39e09a68eac7cf9ab474b1276e
BLAKE2b-256 e4b843bc792f2511ebb424fcd64452d5f0543ade2e843eac9c63fc35ada7d0cd

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 files

1.0.1

2 files

1.0.0

2 files

0.3.8

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page