Threat Level: green Handler on Duty: Xavier Mertens

SANS ISC: ipv6finder : How ready are you for IPv6? - SANS Internet Storm Center SANS ISC InfoSec Forums

Watch ISC TV. Great for NOCs, SOCs and Living Rooms:

Sign Up for Free!   Forgot Password?
Log In or Sign Up for Free!
ipv6finder : How ready are you for IPv6?

Over the holidays, I used some of the vacation and down time to reorganize my home network. Part of this was to update my network maps and figure out how many of my devices do not support IPv6. I do use IPv6 extensively at home, but even some recently purchased devices do not support it.

Another problem you have with IPv6 is to find all devices on your network. The standard and simplest way to do this (aside from passively listening) is to ping the "all hosts" multicast address ff02::1. If you use auto configured link local addresses, you can also look for the EUI-64 (MAC Address) derived IPv6 addresses.

The result: a shell script to run some of these scans for you [1]

The script currently is tested on Linux and OS X. It will not work on Windows. It does require root access as it uses arping for some of its tests (could fix that, but I found the arping output to be more consistent between platforms then just the arp command which would work too with a normal ping).

Read the comments in the file for some more details. Also: at the top of the script there are some variables that you can use to point it to the right location for various binaries it uses. Why bash and not perl... well, I started it in bash and it grew.


Johannes B. Ullrich, Ph.D.
SANS Technology Institute

I will be teaching next: Application Security: Securing Web Apps, APIs, and Microservices - SANSFIRE 2022


4504 Posts
ISC Handler
Jan 5th 2011
Trying this on Debian testing, sh (bash) doesn't like the "==" operators in the two

if [ "$OS" == "LINUX" ]

lines. That, apparently, is a bashism: sh requires "=" here.

Small nitpick: on Debian testing, arping is in /usr/sbin.

4 Posts
On ubuntu 10.10 , small changes.

Path is different for arping

# ARPING=/sbin/arping

Operator == have to be simple =

Loop has an issue (at least for me). Modified like

#for b in {1..254}; do
for b in $(seq 1 254); do

No NMAP here ;-) ?

Thanks for the useful script

7 Posts
To solve the operators and loop issues, just change the script header (debian)


7 Posts
Sigh, I forwarded this to our network operations team. They responded that there was no reason to shift priorities to address IPv6 at this time. We'll be one of those places that implements IPv6 in a rush to meet demand and will spend years fixing the problems caused by lack of planning.

14 Posts

Sign Up for Free or Log In to start participating in the conversation!