Being able to tie an IP to a rough physical location was, in retrospect, a huge Internet design mistake. IPs should be like random UUIDs. They should have been designed to get assigned randomly when you obtain one, rotated / thrown away periodically, with no hierarchical numeric relationship with the ISP that is assigning them.
It was much easier to assign blocks of IPs to an ISP rather than a 4.3B line lookup table. And how would you ensure that an address has been rotated? How do you determine who the real owner of an IP is when collisions occur? You're asking for a worldwide atomic database propagated to all routers in the days where a 32bit number was considered massive.
It's not practical because IPs are routed in blocks, and this is necessary for efficiency. Otherwise every single router on the internet would have to remember the locations of up to 100 billion connections, and when the internet surpasses this size every router will need to be replaced.