Best indexing strategy for query that searches between two bigint columns
I think a composite index with both ip_from and ip_to would be the most efficient for this range search. If the only columns returned are latitude and longitude, those queries should be included as non-key columns in the non-clustered for the best performance of this particular query. The index should be clustered instead of you often return the other columns.

Because your query specifies TOP (1) without an ORDER BY, any arbritrary row may be returned within the range search.  Specify 'ORDER BY' with columns to uniquely identify a row if you need the same row returned each time.