Take over maintainership.
[prips:prips.git] / README
1 README for prips
2
3 prips is a tool that can be used to print all of the IP address on a given range.  It
4 can enhance the usability of tools that are made to work on only one host at a time (e.g.
5 whois).
6
7 Installation:
8 -------------
9 At this time, prips has only been tested on Linux 2.x/i386.  It may or may not work on 
10 other platforms.  If you port it and feel like sending me a patch please do so!  I will be
11 very grateful.  
12
13 Use tar to extract the source code 'tar xvfz prips.tar.gz'. Enter the prips
14 directory and type 'make'.  That will create a binary call 'prips'.  Copy that wherever you
15 like (e.g. /usr/local/bin).
16
17 Examples:
18 ---------
19
20 Example 1 and 2:
21 ----------------
22 The following two examples illustrate the most basic use of prips.  The first example
23 prints all of the addresses between the start IP address (first argument) and end IP
24 address (second argument).  The second example uses CIDR notation to achieve the same
25 result.
26
27         [dan@twig /]$ prips 192.168.0.0 192.168.0.255
28         192.168.0.0
29         192.168.0.1
30         ...
31         192.168.0.255
32
33 Do the same with CIDR:
34
35         [dan@twig /]$ prips 192.168/24
36         192.168.0.0
37         192.168.0.1
38         ...
39         192.168.0.255
40
41 Example 3:
42 ----------
43 We can also use prips to go from an IP range to CIDR notation by using the -c option.
44
45         [dan@twig /]$ prips -c 192.168.0.0 192.168.0.15
46         192.168.0.0/28
47
48 Example 4:
49 ----------
50 The -i option allows us to set the number by which each address is incremented.  This
51 example uses the -i option to print only the network addresses of each class C size network
52 in the range 10.8/16.
53
54         [dan@twig /]$ prips -i 256 10.8/16
55         10.8.0.0
56         10.8.1.0
57         10.8.2.0
58         ...
59         10.8.255.0
60
61 Example 5:
62 ----------
63 The last example is a shell script that pings all of the hosts on a (small) network in
64 parallel.  A one or zero indicates whether the host can be pinged or not.  The -e
65 options is used in this example to exclude the network address and broadcast address (0
66 and 255 in the last octet).  Note that this script only works on small networks because it
67 uses a *lot* of processes.  There is a race in that if the pings don't return fast 
68 enough, you may hit your process limit...
69
70         #!/bin/sh
71
72         if [ $# != 0 ]; then
73                 ping -c 1 $1 >/dev/null
74                 echo "$1: $?"              
75         else
76                 for i in `prips 207.94.169/24 -e ...0,255`
77                 do
78                         exec $0 $i &
79                 done
80         fi              
81
82 Feedback:
83 ---------
84 Please send all feedback to Peter Pentchev <roam@ringlet.net>.  Suggestions, patches, and bug reports are
85 always appreciated.