Here’s a great article on how to get a geographic location from an IP address within SQL Server:
http://www.sqlservercentral.com/articles/SQL+Server/67215/
The article is very easy to follow and gives great direction of setting up a user defined function in SQL to give you back a location based on the IP address. Since SQL servers are very good at processing data quickly this seems like a natural way to get this information. Once you have the function set up you can easily use it in asynchronous processes like analyzing logs, post processing of customer data, etc. You can also set this up as a trigger within SQL or a service callable by outside apps, such as a webapp.
I’ve seen this used in a lot of ways that I don’t care for (thanks for letting me know about all the fictional hot girls that live in my area, but I don’t think my wife would approve :)) but there are some legitimate ideas coming around. For instance, let me power up my iPhone and see what Nerd Dinners are available in my area (work in progress).
Another scenario is blocking spam. For instance, at my work we service Riverside County in southern California, USA. We have methods to stop unauthorized users from creating accounts and blocking spam to our Wiki’s and such. But why not use location based blocks as well? I know my users are all from Riverside County, so why not block everyone from, say, outside of southern California? While a user or two may be blocked while attempting to access their work from their vacation in Maui, I don’t think I’d get that much flack from blocking these edge cases.