

If the wireshark.gz OUI file is present, v6disc.sh will automatically look up the OUI (MAC manufacturer) in the listing Using autodetection with OUI lookup (v1.5 or later) Colour can be disabled by piping to cat e.g.

It is possible to run Python on OpenWRT, but Python requires more storage (more packages) than just bash.Īdded colour headings (as of version 1.1) to make output more readable.

If multiple interfaces are detected, script will query each interface, good for running on routers (tested on OpenWRT 17.01.4 & 18.06.1) Why Bash?īash is terrible at string handling, why write this script in bash? Because I wanted it to run on my router (OpenWRT), and just about every where else, with the minimal amount of dependencies. Because RFC 7217 GUA addresses are not guessable, v6disc.sh uses the local GUA to discover them (as of version 1.3) With RFC 7217 (A Method for Generating Semantically Opaque Interface Identifiers with IPv6 Stateless Address Autoconfiguration (SLAAC)) the GUA is more random (e.g. The script will also use avahi or bonjour (if installed). Pinging using the host Global Unicast Address (GUA) will yield GUAs in that prefix, including hosts which use DHCPv6.Īs of version 1.3, v6disc no longer guesses SLAAC addresses based on MAC addresses (based on RFC 4862). IPv6 under the hoodĮach IPv6 node joins the multicast IPv6 all_notes group (FF02::1), one only needs to ping6 this group to determine which hosts are on the link. The script will detect if it is running on a Mac, and automatically include ip_em.sh, the ip command emulator script. By creating a ip command emulator in bash, the ip basic show commands are supported on BSD. MacOS X is BSD based, and does not support the linux ip command. Even with version 7 of nmap, scanning a /64 still takes a week! v6disc.sh scans a /64 less than 5 seconds. With 18,446,744,073,709,551,616 (2^64) potential addresses on a LAN segment, the old brute force method of scanning every address (e.g.

