#!/bin/bash

#
# $Id: psw2,v 1.2 2008/09/10 10:09:22 raptor Exp $
#
# psw2 v0.1 - Simple B class flood ping sweeping sh script
# Copyright (c) 2006 Marco Ivaldi <raptor@0xdeadbeef.info>
#
# PSW2 is a very basic flood ping sweeper written in bash. Useful for
# mapping big networks when experiencing problems with nmap/fping. It
# requires the fping parallel pinger (get it at http://www.fping.com/).
#
# See also: http://www.0xdeadbeef.info/code/psw
#
# Usage example: ./psw2 192.168 0 255
#

# Some vars
fping=/usr/local/sbin/fping

# Command line
network=$1
begin=$2
end=$3

function usage() {
	echo ""
	echo "psw2 v0.1 - Simple B class flood ping sweeping sh script"
	echo "Copyright (c) 2006 Marco Ivaldi <raptor@0xdeadbeef.info>"
	echo ""
	echo "usage  : ./psw <b-class> <begin> <end>"
	echo "example: ./psw 192.168 0 255"
	echo ""
	exit 1
}

# Input control
if [ -z "$3"  ]; then
	usage
fi

# Interactive logging
echo ""
echo "psw2 v0.1 - Simple B class flood ping sweeping sh script"
echo "Copyright (c) 2006 Marco Ivaldi <raptor@0xdeadbeef.info>"
echo ""

# Perform the fping sweep
while :
do
	echo "[${network}.${begin}.0/24]"
        $fping -a -r 1 -g $network.$begin.0/24 2>/dev/null
	echo ""

# Go for the next address
        if [ $begin -eq $end ]; then
                break
        else
		begin=$(($begin + 1))
        fi
done

exit 0
