Reading the IP is very quick: Request.UserHostAddress will give it too you immediately. The SQL check should not be long in human terms either - it's just a simple query:
SELECT COUNT(*) FROM IPTable WHERE IPAddress='100.100.100.100'
and can be executed as a ExecuteScalar to return just the value. 0 means it's not in there.
So why should it be slow?
However, you should be aware that all users on teh same internet connection will have the same IP address - so all users from the same company will probably match.