First i thought using the browser-gem and browser.bot? would give me the correct answer. But somehow it did not work. So i am now using this litte snippet to detect bots.
class BotDetection
def self.bot?(agent)
matches = nil
matches = agent.match(/(facebook|postrank|voyager|twitterbot|googlebot|slurp|butterfly|pycurl|tweetmemebot|metauri|evrinid|reddit|digg|sitebot|msnbot|robot)/mi) if agent
return (agent.nil? or matches)
end
end
In my Base-Controller:
def bot_request?
uAgent = request.env["HTTP_USER_AGENT"]
if(uAgent.nil?)
false
else
BotDetection.bot?(uAgent)
end
end
A list of user-agents may be found at http://www.user-agents.org/