Not necessarily. Most cable co's and DSL providers have regional points to route from. It would be very messy to be layer 2 all the way back to their main office. Even if they have a /16 aggregate (or more than likely multiple /16's), they will still usually break those down into /23's or /24's at the regional level.
/24 is relatively small; even for a regional level. Now, if you want to make that into a hut or a CO that's much better.
This is the era of larger ISPs with the telcos and cable cos dominating the landscape.
Even if their CIDR blocks are not SWIP'ed and just listed as one huge block in the ARIN WHOIS database, there are still multiple ways to determine the rough location of an IP. First, most dsl/cable providers have PTR records in their DNS that resolve to something like xxx-xxx-xxx-xxx.clvoh.whatever.com, clvoh being a code for Cleveland OH for example. Also, I imagine they may get a bit of a kickback from marketing or geoip companies for just such purposes.
You're assuming that everyone uses something that's easy to parse... Not a guarantee.
Now, let's go back to the example of 24.182.x.x. You've only given me two of th four octets to work with, so you're right, that "class B" (although, technically, everything is CIDR now, so that would be a /16 in CIDR notation) That range is owned by Charter and lists their main office address in St. Louis in their ARIN registration, which means that with just the first two octets it cannot be traced anywhere. However, let's make up an IP address... 24.182.195.55. That IP resolves to xxxxxx.ftwo.tx.charter.com, which means that IP is for their Fort Worth, Texas market.
Nope, I went straight for my address, I simply used one of the geoproviders to get the info. It was only off by 1/4 of the country.
It's one thing for you to parse an address resolved back to a name; and quite another for programs to do so. It's child's play with some of them; but not so much with others.
For the accomplished, it's simply a cut or awk statement -- but then you have to filter that through some sort of table to go from abbreviations to city/state pairs. To further complicate matters, the approaches change based on ISP.
Now, it's entirely possible that your traffic goes through Tor, through a work VPN, through a proxy server, or any of a dozen other ways to disguise the true source. However, the point is it's relatlively easy -- in most cases -- to determine the rough geographic location.
Routing is orthogonal to source location. It's a complete non sequitur to the discussion at hand.
As another example, my source IP is 68.107.194.0/24. Although the ARIN registration that most whois sites will show (at least, those that query the ARIN whois) shows Atlanta, GA, the entire netblock resolves in xxxx.cl.ri.cox.net. The "cl" means Cleveland in this case. And, the GeoIP database also lists me in Cleveland, which is correct.
Based on earlier discussion now you have to have an entry for Cleveland. Cleveland OH or Cleveland RI? That's not intuitively obcious based on the returned DNS name.
Is CL Cleveland OH or Clearwater, FL? Maybe it's CumberLand Rhode Island.
Your knowledge is based on where you're sitting rather than looking at it in the abstract.
Anyone who thinks they are hard to trace online is sadly mistaken, unless they are taking some type of precautions (Tor etc) otherwise.
Tracing is a seperate matter entirely from data gathering.
And we haven't even gotten into aggregations and proxies which really throws a wrench into the whole works.
Still, it is interesting discussion