Jump to content

Archived

This topic is now archived and is closed to further replies.

g1c9

Determining browser or bot from user agent -

Recommended Posts

Hey,

I am trying to take the user agent and determine weather it is a browser or a bot on my site with PHP and the user agent. I am doing this by searching the user agent for common browsers/renderers.

Here is the code I have so far:

[code]
    $agent = getenv("HTTP_USER_AGENT");
    echo '<b>USER AGENT:</b> '.$agent.'<br><br>';
    $x = 0;
    $hide = array('Mozilla','MSIE','Opera','Lynx','WebTV','MCSA','Mosaic');
    foreach ($hide as $find) {
        if (strpos($agent, $find) === false) {
            $is_bot[$x] = true;
            }
            echo $find.': '.$is_bot[$x].'<br>';
            $x++;
        }
    $is_bot = false;
[/code]

I wish I could tell you all the problem so you could fix it, but I don't know the problem! The code above outputs nothing for the first one, (mozilla), and 1's for everything after that!

Please help me debug this!

Thanks in advance,

Cameron

Share this post


Link to post
Share on other sites
Here's how I check for similar items:
[code]<?php
if (preg_match('/slurp|grub|[Bb]ot|archiver|NetMonitor/',$_SERVER['HTTP_USER_AGENT'])) {
?>[/code]

Ken

Share this post


Link to post
Share on other sites
That checks if it is a bot, correct?

Does this work well for most SE bots? (eg: google, yahoo, msn)

Any browsers this may cuase a problem for?

Share this post


Link to post
Share on other sites
[!--quoteo(post=349353:date=Feb 25 2006, 07:06 PM:name=cameron)--][div class=\'quotetop\']QUOTE(cameron @ Feb 25 2006, 07:06 PM) [snapback]349353[/snapback][/div][div class=\'quotemain\'][!--quotec--]
That checks if it is a bot, correct?

Does this work well for most SE bots? (eg: google, yahoo, msn)

Any browsers this may cuase a problem for?
[/quote]

I use the following on my site to determin browser type which also detects bots ( google, slurp etc )
you can modify it for your own needs.

[code]

if ((ereg('Nav', $HTTP_SERVER_VARS['HTTP_USER_AGENT'])) || (ereg('Gold', $HTTP_SERVER_VARS['HTTP_USER_AGENT'])) || (ereg('X11', $HTTP_SERVER_VARS['HTTP_USER_AGENT'])) || (ereg('Mozilla', $HTTP_SERVER_VARS['HTTP_USER_AGENT'])) || (ereg('Netscape', $HTTP_SERVER_VARS['HTTP_USER_AGENT'])) AND (!ereg('MSIE', $HTTP_SERVER_VARS['HTTP_USER_AGENT'])) AND (!ereg('Konqueror', $HTTP_SERVER_VARS['HTTP_USER_AGENT'])) AND (!ereg('Yahoo', $HTTP_SERVER_VARS['HTTP_USER_AGENT'])) AND (!ereg('Firefox', $HTTP_SERVER_VARS['HTTP_USER_AGENT'])))
{
    $browser = 'Netscape';
}
elseif( ereg('Firefox', $_SERVER['HTTP_USER_AGENT']) )
{
    $browser = 'FireFox';
}
elseif( ereg('MSIE', $HTTP_SERVER_VARS['HTTP_USER_AGENT']) )
{
    $browser = 'MSIE';
}
elseif( ereg('Lynx', $HTTP_SERVER_VARS['HTTP_USER_AGENT']) )
{
    $browser = 'Lynx';
}
elseif( ereg('Opera', $HTTP_SERVER_VARS['HTTP_USER_AGENT']) )
{
    $browser = 'Opera';
}
elseif( ereg('WebTV', $HTTP_SERVER_VARS['HTTP_USER_AGENT']) )
{
    $browser = 'WebTV';
}
elseif( ereg('Konqueror', $HTTP_SERVER_VARS['HTTP_USER_AGENT']))
{
    $browser = 'Konqueror';
}
elseif( ( eregi('bot', $HTTP_SERVER_VARS['HTTP_USER_AGENT']) ) || ( ereg('Google', $HTTP_SERVER_VARS['HTTP_USER_AGENT']) ) || ( ereg('Slurp', $HTTP_SERVER_VARS['HTTP_USER_AGENT']) ) || ( ereg('Scooter', $HTTP_SERVER_VARS['HTTP_USER_AGENT']) ) || ( eregi('Spider', $HTTP_SERVER_VARS['HTTP_USER_AGENT']) ) || ( eregi('Infoseek', $HTTP_SERVER_VARS['HTTP_USER_AGENT']) ) )
{
    $browser = 'Bot';
}
else
{
    $browser = 'Other';
}
[/code]

hope it helps

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.