Every IP resides in a block of IPs assigned to a single entity, either an ISP or an end user. In RIPE (the European IP registry) these blocks are known as INETNUM objects and they are easy to query using the RIPE database. The database can be queried using a web form or by API (see documentation).
Here is the response for IP 212.58.244.26:
inetnum: 212.58.244.0 - 212.58.244.255
netname: BBC-TELHC-WWW-1
country: GB
descr: BBC
descr: Telstra London Hosting Centre
descr: *******************************************************
descr: * In case of any problems with users of this address
descr: * space (spam, attacks, illegal activity, etc) please
descr: * email abuse@bbc.co.uk with full logfile entries
descr: *******************************************************
remarks: Abuse reports to abuse@bbc.co.uk
remarks: INFRA-AW
admin-c: BBC-RIPE
tech-c: BBC-RIPE
status: ASSIGNED PA
mnt-by: BBC-MNT
created: 2017-03-02T10:31:19Z
last-modified: 2017-03-02T10:31:19Z
source: RIPE
There are various ways you could parse this response to determine more information about the IP, but it will rarely be completely definitive. For instance, we can see above a country code (GB) and we could use the RIPE database to look up the role holder (BBC-RIPE). This role holder contains a valid address (BBC Broadcasting House, Portland Place, LONDON, W1A 1AA). In addition, there is plain text in the record asserting that the block is used in a London data centre. Firms like MaxMind will use this data and their own algorithms to try to provide sensible data.
RIPE provide a selection of useful information about a block using, in this example, the link https://stat.ripe.net/212.58.244.0%20-%20212.58.244.255#tabId=at-a-glance