Bu kodu bir projemiz için yazdım ve belki sizin de işinize yarar diye paylaşmak istedim. Bu kod sanırım sadece apache ile çalışıyor, IIS ile denemedim. Kod bağlanan kişinin USER_AGENT ina bakarak iPhone yada iPod mobil device ile bağlanıp bağlanmadığını söylüyor.
Dönen sonuçlar:
YES: kesinlikle iphone yada ipod ile bağlanıyor
MAYBE: kullanıcı tarayıcısını iphone gibi algılanması için oynama yapmış, aslında iphone değil ama iphone olarak algılanabilir. (örneğin Firefox taki User Agent Switcher)
NO: Kesinlikle iphone değil
Dönen sonuçlar:
YES: kesinlikle iphone yada ipod ile bağlanıyor
MAYBE: kullanıcı tarayıcısını iphone gibi algılanması için oynama yapmış, aslında iphone değil ama iphone olarak algılanabilir. (örneğin Firefox taki User Agent Switcher)
NO: Kesinlikle iphone değil
PHP:
<?
$arr = array(
"Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0_1 like Mac OS X; en-us) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5B108 Safari/525.20",
"Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0 like Mac OS X; en-us) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5A345 Safari/525.20",
"Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0 like Mac OS X; en-us) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5A347 Safari/525.20",
"Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0 like Mac OS X; en-us) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5A357 Safari/525.20",
"Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/3B48a Safari/419.3",
"Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/3B48b Safari/419.3",
"Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/4A102 Safari/419.3",
"Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/4A93 Safari/419.3",
"Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1C28 Safari/419.3",
"Mozilla/5.0 (iPhone; U; CPU like Mac OS X; tr-tr) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/4A102 Safari/419.3",
"Mozilla/5.0 (iPod; U; CPU iPhone OS 2_0_1 like Mac OS X; en-us) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5B108 Safari/525.20",
"Mozilla/5.0 (iPod; U; CPU iPhone OS 2_0 like Mac OS X; en-us) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5A347 Safari/525.20",
"Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en)",
"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1",
);
foreach($arr as $line) {
echo is_iPhone($line)."<br>\n";
}
function is_iPhone($agent='') {
if(empty($agent)) $agent = $_SERVER['HTTP_USER_AGENT'];
if(!empty($agent) and preg_match("~Mozilla/[^ ]+ \((iPhone|iPod); U; CPU [^;]+ Mac OS X; [^)]+\) AppleWebKit/[^ ]+ \(KHTML, like Gecko\) Version/[^ ]+ Mobile/[^ ]+ Safari/[^ ]+~",$agent,$match)) {
return "YES";
} elseif(stristr($agent,'iphone') or stristr($agent,'ipod')){
return "MAYBE";
} else {
return "NO";
}
}
?>