Why am I today just learning that `ping` will stuff 0's into octets you omit from an address? All of the keystrokes I could have saved and minutes on the phone I could have saved doing `ping 192.168.1` instead!
It's not ping. It's a common C library routine used by quite a number of programs that does this. And this is old behaviour of that library function, that has been around for decades. Here's FreeBSD's library function from 1994, and it was fairly old then: