Project

ddis

0.0
No commit activity in last 3 years
No release in over 3 years
A small utility to determine the conformity of an IP on a network
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

>= 1.5.0
>= 1.5.3
>= 3.0.2
 Project Readme

ddis

Install

Gem is over at https://rubygems.org/gems/ddis so a simply gem install ddis will do the trick.

Else build it from source.

Usage

Due to needing stupid rights to stupid ping one must run under root. Stupid root.

# ddis -h
Usage: ddis [options]
    -r, --range [IP RANGE]           IP Range to scan against
    -u, --unass [UNASSIGNED STRING]  Text contained in unassigned IPs
    -c, --count [NUMBER]             Number of times to run through
    -s, --sleep [SECONDS]            Number of seconds to sleep between runs
    -v, --verbose                    See extra debug

The defaults are:

ip_range = '127.0.0.1/24'
unassign = 'localhost'
count    = 1
secs     = 0
verbose  = nil

For the network 10.1.0.0/16 which uses the PTR format unassigned-0.0.1.10.example.com we would start as per:

# ddis -r 10.1.0.0/16 -u unassigned

Should we want to run this over a few days to collate the results:

# ddis -r 10.1.0.0/16 -u unassigned -c 500 -s 10

Which would run 500 times with a ten second break between each iteration.

Data

The data is stored under redis following the schema:

ip.#{date.now.to_s}.up      # Hosts which are up and have a PTR as per =~ /#{unass}/
ip.#{date.now.to_s}.down    # Hosts whhich are down but don't have a PTR which has been reset

A list of times can be found under ip.times; the date.now.to_s is set when the object is created and not each time. This gives us th econfidence that leaving ddis over multiple days wont bork our data by spreading it all over.