On Thursday 26 May 2011 17:24:05 Florian Philipp wrote:
> Am 25.05.2011 21:45, schrieb Harry Putnam:
> > There must be a number of people who post here that have had to do
> > this problem.
> > 
> > Discover the addresses of computers on a home network that have
> > connected by way of DHCP.  For example: Several wireless connections.
> > 
> > I've used static IPS for around 10 yrs, always seemed handier for
> > things like ssh between home lan computers.
> > 
> > But recently started using DHCP for wireless connections.  It must be
> > such a popular method for some reason.
> > 
> > But when you do it that way, and say want to VNC or ssh or the like to
> > something connected by a dhcp serving WAP then how do you find the
> > address?
> > 
> > That is, besides something like accessing the WAP and checking the IPs
> > connected to it.
> > 
> > Is there some quick and sure way to discover any IPs on the home lan?
> > 
> > Some kind of mapper tool?
> 
> While I personally prefer a combined DHCP+DNS server like dnsmasq, you
> can also take a look at the whole Zeroconf/MDNS/Avahi/Bonjour stack.
> 
> I'm not really sure if you can configure common devices and Linux PCs to
> use the DNS server for internet addresses and MDNS for local ones. In
> theory, it should be possible since you can distinguish them (local
> addresses should not be fully qualified _or_ have the domain .local).
> 
> net-misc/mDNSResponder, sys-auth/nss-mdns and net-dns/avahi are probably
> good starting points.

netdiscover seems to do exactly what the OP asked for, although I have used 
arping and a couple of scripts I found on the net and modified them.

The first looks like this:
=============================
#!/usr/bin/env bash

quit_on_found=0
packet_count=2
subnet=""
verbose="-q"

usage()
{
cat << EOF
find_ip 1.0 Robin Wood (dni...@gmail.com) (www.digininja.org)

Find used and unused IPs on a network you don't haven an IP address on

usage: $0 options

OPTIONS:
        -h                Show this message
        -c <packet count> The number of ping packets to send, default 2
        -s <subnet>       First 3 parts of the subnet to test, default 
192.168.0
        -q                Quit when found first free address, default keep 
going
        -v                Verbose

EOF
}

have_arping=`which arping`

if [[ "$have_arping" == "" ]]
then
cat << EOF
usage: $0 options

You must have arping installed and in the current path for this scanner to 
work
EOF
        exit 1
fi

while getopts  ":hvs:qc:" flag
do
        case $flag in
                h)
                        usage
                        exit 1
                        ;;
                c)
                        packet_count=$OPTARG
                        ;;
                q)
                        quit_on_found=1
                        ;;
                s)
                        subnet=$OPTARG
                        ;;
                v)
                        verbose=""
                        ;;
                ?)
                        usage
                        exit 1
                        ;;
        esac
done

if [[ "$subnet" == "" ]]
then
cat << EOF
usage: $0 options

You must provide a subnet
EOF
        exit 1
fi

if [[ "$verbose" == "" ]]
then
        if [[ $quit_on_found == 1 ]]
        then
                echo "Quiting when found a free address"
        fi
        echo "Testing subnet $subnet.0/24"
        echo "Sending $packet_count packets per IP"
fi

for i in {1..254}
do
        IP=$subnet.$i
        arping $verbose -c $packet_count $IP
        result=$?
        if [[ $result == 0 ]]
        then
                echo "$IP Used"
        else
                echo "$IP Free"
                if [[ $quit_on_found == 1 ]]
                then
                        exit
                fi
        fi
done
=============================

Google for "find_ip.sh"

The other which I can't find at the moment prints out the MAC address of each 
IP address that is in use.  Alternatively, run the above script with the -v 
option and then scroll back to look at the MAC addresses.

Of course, I was using this before I knew that netdiscover existed - thanks 
for sharing!
-- 
Regards,
Mick

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to