useragents.usr1.de
Private API zur Analyse des Useragents (Browser)
Diese API ist eine private Konstruktion. Nutzung auf eigenes Risiko, ohne Gewähr und ohne Anspruch auf Verfügbarkeit, Vollständigkeit oder Korrektheit. Änderungen sind jederzeit möglich.
Die API wird per HTTP angesprochen und gibt ein XML-Gerüst zurück. Die Nutzung wurde unter PHP eingerichtet und getestet.
Die Angaben zum Browser werden in einer Datenbank hinterlegt und nicht bei jeder Anfrage neu ermittelt. Nur beim erstmaligen Auftreten eines neues UserAgents werden die Daten neu erfasst.
Die Datenbank basiert dabei zum Teil auf den Daten aus www.user-agents.org und www.cantoni.org/2005/02/03/mobile-ua
Ihr Useragent (Browser):
CCBot/2.0 (https://commoncrawl.org/faq/)
Ansprache der API unter PHP (Beispiel):
<?php
$data = file('http://useragents.usr1.de/api.php?agent='.urlencode($HTTP_USER_AGENT));
?>
Rückgabe der API:
<?xml version="1.0" encoding="UTF-8"?>
 <xml>
 <useragent>
 <source>useragents.usr1.de</source>
 <query>CCBot/2.0 (https://commoncrawl.org/faq/)</query>
 <created>Fri, 26 Apr 2019 05:52:02 +0200</created>
 <reply>
 <result_id>1</result_id>
 <result_text>match found</result_text>
 <result_num>1</result_num>
 <result_list>
 <result_entry>
 <id>0</id>
 <agent_code>CCBot/2.0 (https://commoncrawl.org/faq/)</agent_code>
 <agent_mobile>0</agent_mobile>
 <agent_robot>1</agent_robot>
 <agent_info>Bot</agent_info>
 <agent_shortname></agent_shortname>
 <agent_type></agent_type>
 <agent_type_info></agent_type_info>
 <agent_language></agent_language>
 <agent_os></agent_os>
 <agent_url></agent_url>
 </result_entry>
 </result_list>
 <first_robot>1</first_robot>
 <first_mobile>0</first_mobile>
 <first_shortname></first_shortname>
 </reply>
 </useragent>
 </xml>
Mit PHP in Array umwandeln:
<?php
$xml_addr = 'http://useragents.usr1.de/api.php?agent='.urlencode($HTTP_USER_AGENT);

function xmlobj2arr($Data) 
	{
	if (is_object($Data))
		{
		foreach (get_object_vars($Data) as $key => $val)
			{$ret[$key] = xmlobj2arr($val);}
		return $ret;
		}
	else if (is_array($Data))
		{
		foreach ($Data as $key => $val)
			{$ret[$key] = xmlobj2arr($val);}
		return $ret;
		}
	else
		{return $Data;}
	}

$xml = xmlobj2arr(simplexml_load_file($xml_addr));
print_r($xml);
?>
Ergebnis der obigen Funktion:
Array
(
    [useragent] => Array
        (
            [source] => useragents.usr1.de
            [query] => CCBot/2.0 (https://commoncrawl.org/faq/)
            [created] => Fri, 26 Apr 2019 05:52:02 +0200
            [reply] => Array
                (
                    [result_id] => 1
                    [result_text] => match found
                    [result_num] => 1
                    [result_list] => Array
                        (
                            [result_entry] => Array
                                (
                                    [id] => 0
                                    [agent_code] => CCBot/2.0 (https://commoncrawl.org/faq/)
                                    [agent_mobile] => 0
                                    [agent_robot] => 1
                                    [agent_info] => Bot
                                    [agent_shortname] => 
                                    [agent_type] => 
                                    [agent_type_info] => 
                                    [agent_language] => 
                                    [agent_os] => 
                                    [agent_url] => 
                                )

                        )

                    [first_robot] => 1
                    [first_mobile] => 0
                    [first_shortname] => 
                )

        )

)
Schneller Zugriff:
Da es für jeden Browser nur einen Eintrag geben sollte, wäre der schnellste Weg, zu prüfen, ob es sich um einen Robot oder einen mobilen Browser handelt, die obige Funktion auf die API-Rückgabe anzuwenden. Danach gilt:
<?php
$browser = $xml['useragent']['reply']['first_shortname'];
echo "Ihr Browser: $browser\n";
$is_rebot = $xml['useragent']['reply']['first_robot'];
echo "Robot: $is_rebot\n";
$is_mobile = $xml['useragent']['reply']['first_mobile'];
echo "Mobile: $is_mobile\n";
?>
Bei Ihrem Brower wäre das Ergebnis:
Ihr Browser: 
Robot: 1
Mobile: 0
Zuverlässiger wäre natürlich, die Anzahl der ermittelten Treffer auszulesen und danach auf die einzelnen Elemente unter "result_entry" zuzugreifen.