Coworker: ...and the IP address are compared with a string match.
Me: grinning manically
Coworker: Why are you looking at me like that?
Me: Open up a terminal and type ping 4.2.514 and hit enter.
Coworker: ...what's the fourth number?
Me: grin widens Just hit enter.
Coworker: WTF!?

@ryanc

`ping 8.8.2056`

WTF how am just finding out about this today?

@pikesley @ryanc what. How?!

@uastronomer @ryanc

I mean... 2056 is 8*256 + 8, the maths makes sense, but WTFFFFFF?

@pikesley @ryanc Oh.... oh okay, I see!

WOW!

'cos a standard format IPv4 address is technically a 4 digit base256 number, so this is all just base conversions gone screwy 🤣🤣🤣

@uastronomer @ryanc yeah, it's completely cursed

`ping 134744072`

@uastronomer @ryanc

```
>>> (8 * pow(256, 3)) + (8 * pow(256, 2)) + (8 * pow(256, 1)) + (8 * pow(256, 0))
134744072
```

@uastronomer @ryanc

or

```
sum(8 * pow(256, n) for n in range(4))
```

OK stepping away from the Python console now

@[email protected] @uastronomer @ryanc huh, that's not too different from a phone number

@pikesley @uastronomer @ryanc It’s actually really great, because it’s incredibly painful to do math with dotted decimal strings, especially when the netmasks don’t line up to a byte boundary. It’s much, much easier to convert them to a number and do math on the number.

For example, you can convert an interface’s IP number to an integer, convert its mask to an integer, and do a bitwise AND to get the lowest address. You can then bitwise NOT the mask integer and do a bitwise OR with the lowest address to get the highest address. And you can feed integers to seq or a for loop or whatever.

@pikesley @uastronomer @ryanc Way back in the 90s I made someone angry with me when I gave the URL for a web site as http://[long number here]/whatever.html. Those were fun times.

@Austin_Dern @pikesley @uastronomer @ryanc

01189998819991197253.com/help.html

@leitzke @Austin_Dern @pikesley @uastronomer the guy who made the it crowd is a monster

@pikesley @ryanc @leitzke @Austin_Dern @uastronomer
He was the second-best writer on "Father Ted".

Arthur disowned him years ago.

Give 'Em Enough Pope (@[email protected])

Johnny Marr returns from the bar carrying three pints. He, John Squires and Arthur Matthews each take a deep draught, and sigh wistfully

mastodon.me.uk

@dec23k @pikesley @ryanc @leitzke @uastronomer Alas.

Way back before we knew about him, we got a book of Father Ted scripts with commentary and it mentioned one episode where they wanted an insert shot of Father MacDougal working out "a page of failed noughts-and-crosses" and gads, to think a mind that could produce such a perfect funny concept would be lost.

[ The episode didn't use the page because they couldn't work out a prop that did the idea justice. ]

@Austin_Dern @pikesley @leitzke @uastronomer
It's safe to say that Arthur had most of the best and funniest 'Ted' ideas.
Way back in 1988, a band called The Joshua Trio provided a background for Ted's character to be created.
They usually had comedy skits between some of the songs, which were co-written and performed by a bunch of staff writers from the music magazine where Arthur was photo editor at the time.
https://www.paulwoodfull.com/the-joshua-trio
(that's Arthur on drums.)
The Joshua Trio | musiccomedy

musiccomedy
@dec23k Oh, this is quite nice. Thank you!

@pikesley @ryanc @Austin_Dern @uastronomer oh damn, I had no idea he was a bigot until now!!!

it even took me some hours to understand that "a monster" should actually be interpreted by the negative connotation.

Sorry for bringing up the reference and thanks for pointing this out so I could read about it.

@leitzke @pikesley @ryanc @uastronomer Oh, I'm sorry to bring you the bad news.

Here's hoping we live long enough to see him fix his heart or die.

@uastronomer
That's it. I'm just going to document things in Confluence with calculated IPs like 'ping 168433938'

@pikesley @ryanc

@pikesley @ryanc Still geeking out about this hour later!

@uastronomer @ryanc

```
>>> IP="185.53.178.54"
>>> sum(int(n) * pow(256, index) for index, n in enumerate(reversed(IP.split("."))))
3107303990
```

Thought about this all over lunchtime

@uastronomer @pikesley @ryanc technically an IP address is just a 32bit integer. The dotted quad is just a mind hack because we can more easily remember strings of smaller numbers.

@uastronomer

>'cos a standard format IPv4 address is technically a 4 digit base256 number,<

not exactly. if you ping 192.1 (example from below), the pinged address ist not 0.0.192.1, but (strangely) 192.0.0.1

but yes, there's some similarity. probably depending on how ping parses this numbers.

@pikesley @ryanc
@Infoseepage

@DanKen @uastronomer @ryanc @Infoseepage

Yeah, `ping` is doing some parsing that other tools... aren't:

```
➜ ping 3107303990
PING 3107303990 (185.53.178.54): 56 data bytes
64 bytes from 185.53.178.54: icmp_seq=0 ttl=51 time=30.992 ms

➜ whois 3107303990
% IANA WHOIS server
% for more information on IANA, visit http://www.iana.org
% This query returned 1 object

as-block: 402333-4199999999
organisation: Unallocated
```

Internet Assigned Numbers Authority

@pikesley @DanKen @uastronomer @Infoseepage I regret to inform you that inet_aton is a very popular dumpster fire.

@pikesley @DanKen @uastronomer @ryanc @Infoseepage

I would not trust whois in all scenarios.

It depends upon which server you ask.

@SpaceLifeForm @DanKen @uastronomer @ryanc @Infoseepage ok, fine, but the client doesn't know how to parse that number into an ipv4 address

@pikesley @DanKen @uastronomer @ryanc @Infoseepage

It could be coded to enforce octets and return an error, but it is lazy coding. Fixing it now could create breakage.

Pick your poison.

@pikesley
Like, when I saw the resulting ping, it made sense... Even though it's insanity.

@uastronomer @ryanc