Magic Banana asserted:
" ... I believe groups of four hexadecimal digits chosen by local network administrators ..."

Waitaminnit. The IPv6 addresses start at 1 and then climb one-by-one to an astronomical number like the 79,228,162,514,264,337,593,543,950,336 addresses in 2a02:2788::/32 which are boiled down to the more workable hexadecimal notation 2a02:2788:ffff:ffff:ffff:ffff:ffff:ffff. Zeroes are just part of the originating consecutively realized decimal number, but they come less often than every 10th count as in ...7,8,9,a,b,c,d,e,f,10,11,12,13,14,15,16,17,18,19,1a,1b,1c,1d,1e,1f,20, i.e., every 16th count.

In a dynamically addressed addressing scheme, the local network administrator might just be creating the appearance of that astronomical number. Just patch together an array of four-digit hexadecimal numbers with scripts like the ones with which we have been experimenting. That could be a large but not astronomical number of arbitrary addresses. One of your scripts generates these arbitrary addresses immeasurably quickly. Those addresses need only conform to the astronomical address space which he owns (rents ? ...bought at an ill-advertised public auction ? ... got for free ?).

A script can be written that would call up a series of text-file addresses, create new addresses, populate each one with .html code or a script, upload the data to the new addresses on the appropriate server, delete the former addresses' code, store the new addresses on the local HDD, delete the replaced addresses, and move on without ever closing the cover of his laptop or running out of storage.

Magic Banana's efficient script:
prefix=2a02.2788; od -A n -N 12582912 -xw12 /dev/urandom | tr ' ' : | sed s/^/$prefix/ > SS.IPv6-NLU-MB4520A.txt produces 1,048,576 IPv6 addresses in three (a thousand one, a thousand two, a thousand three ...) seconds real time.

Grep does the :0, :00 & :000 counting for us:
grep -c  :0 SS.IPv6-NLU-MB4520A.txt = 336,443
grep -c :00 SS.IPv6-NLU-MB4520A.txt = 24,358
grep -c :000 SS.IPv6-NLU-MB4520A.txt = 1,500
grep -c :0000 SS.IPv6-NLU-MB4520A.txt = 93
which seems rather realistic, despite the original script's neglecting actually to count from the beginning.

Evaluating our progress ...

nmap -6 -sn -T4 -sL -iL SS.IPv6-NLU-MB4520A.txt | grep "Nmap scan report for " - | tr -d '()' | sort -k5 | awk 'NR >= 1 { print $5, $6 }' | awk 'NR >= 1 { print $2, $1 }' | uniq -Df 1 | sed '/^\s\s*/d' | awk '{ print $2 "\t" $1 }' >> Multi-SS.IPv6-NLU-MB4520A.txt

Alas, 2a02.2788::/32 is gome; WhoIs returns "no one found at this address"... "Failed to resolve ..." is all that nmap gets.

Try mobile.tre.se's 2a02:aa1::/32 instead:
prefix=2a02:aa1; od -A n -N 12582912 -xw12 /dev/urandom | tr ' ' : | sed s/^/$prefix/ > SS.IPv6-NLU-January2020-mobile.tre.se.txt Forgot to count ... I thought something was wrong ... but there it was: 41MB with 1,048,576 addresses.

nmap -6 -sn -T4 -sL -iL SS.IPv6-NLU-January2020-mobile.tre.se.txt | grep "Nmap scan report for " - | tr -d '()' | sort -k5 | awk 'NR >= 1 { print $5, $6 }' | awk 'NR >= 1 { print $2, $1 }' | uniq -Df 1 | sed '/^\s\s*/d' | awk '{ print $2 "\t" $1 }' >> Multi-SS.IPv6-NLU-January2020-mobile.tre.se.txt Network initially running ten times as fast as for the first nmap script ... took 63 minutes (55.2MB) ==> 1,048,534 mobile.tre.se's.

Enumerating:
awk '{print $2,$1}' 'Multi-SS.IPv6-NLU-January2020-mobile.tre.se.txt' | sort -k 2 | uniq -cdf 1 | awk '{print $3"\t"$1}' '-' > Multi-SS.IPv6-NLU-January2020-mobile.tre.se.Tally.txt
Result: mobile.tre.se   1048534

Apply grep again:
grep -c :0 SS.IPv6-NLU-January2020-mobile.tre.se.txt = 336,811
grep -c :00 SS.IPv6-NLU-January2020-mobile.tre.se.txt = 24,452
grep -c :000 SS.IPv6-NLU-January2020-mobile.tre.se.txt = 1,553
grep -c :0000 SS.IPv6-NLU-January2020-mobile.tre.se.txt = 84

A million makes a pretty good sample size, and grep's actual counts have the 1:16:256:4093 (i.e, ~16 times per step). Those randomly generated four-character fields appear not to exclude the normal numbers of zeros as I first thought.

In graduate school, I was at first trying to attain my Sc.D. in Materials Engineering, but my advisor wanted me to take one more course: Statistical Mechanics, which does thermodynamics from the beginning. I contacted the department's registration officer, and he said that I had spent enough time in graduate school (six years) and I had sufficient course credits for a degree in Metallurgy. That's how I escaped mathematical statistics. I got though my metallurgical consulting career with plain old experimentally based thermodynamics, which is what the elements do when left to their
own devices. Never missed those statistical calculations until now.

George Langford

Reply via email to