Your current query i have updated as below please run below query and check response time, i 99.99% sure it will giving to you best result
Step 1: ALTER TABLE A ORDER BY startIpNum DESC;
Step 2: SET timestamp=1394367480;
SELECT location.*, (SELECT * FROM A WHERE (3998482191 BETWEEN startIpNum AND endIpNum) LIMIT 1) AS blocks FROM A_location AS location, WHERE location.locId = blocks.locId;
Step 1: ALTER TABLE A ORDER BY startIpNum DESC;
Step 2: SET timestamp=1394367525;
SELECT location.*, (SELECT * FROM A WHERE (2463400155 BETWEEN startIpNum AND endIpNum) LIMIT 1) AS blocks FROM A_location AS location WHERE location.locId = blocks.locId;
i have just remove ORDER BY field DESC from your query and table alter with ALTER TABLE A ORDER BY startIpNum DESC;