#!/usr/bin/perl
my
$pwd
= cwd();
my
$file
=
"$pwd/Mobile_Detect.json"
;
my
$content
=
""
;
open
my
$handle
,
'<:encoding(UTF-8)'
,
$file
or
die
"Can't open $file for reading: $!"
;
local
$/ =
undef
;
$content
= <
$handle
>;
close
$handle
;
my
$teststring
=
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0"
;
my
$ts
=
"Mozilla/5.0 (Linux; Android 4.4.2; GT-I9500 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.166 Mobile Safari/537.36"
;
eval
{
my
$json
= new JSON;
my
$json_text
=
$json
->allow_nonref->utf8->relaxed->decode(
$content
);
my
%ep_hash
= ();
my
$ep_hash
= {};
while
(
my
(
$k
,
$v
) =
each
(%{
$json_text
->{uaMatch}->{tablets}})){
$ep_hash
->{tablets}->{
$k
} =
$v
;
}
while
(
my
(
$k
,
$v
) =
each
(%{
$json_text
->{uaMatch}->{phones}})){
$ep_hash
->{phones}->{
$k
} =
$v
;
}
while
(
my
(
$k
,
$v
) =
each
(%{
$json_text
->{uaMatch}->{browsers}})){
$ep_hash
->{browsers}->{
$k
} =
$v
;
}
while
(
my
(
$k
,
$v
) =
each
(%{
$json_text
->{uaMatch}->{os}})){
$ep_hash
->{os}->{
$k
} =
$v
;
}
sub
detect_phone(){
my
$str
=
shift
;
while
(
my
(
$k
,
$v
) =
each
(%{
$ep_hash
->{phones}})){
if
(
$str
=~ m/
$v
/ig){
return
$k
;
}
}
return
0;
}
sub
detect_tablet(){
my
$str
=
shift
;
while
(
my
(
$k
,
$v
) =
each
(%{
$ep_hash
->{tablets}})){
if
(
$str
=~ m/
$v
/ig){
return
$k
;
}
}
return
0;
}
sub
detect_mobile_os(){
my
$str
=
shift
;
while
(
my
(
$k
,
$v
) =
each
(%{
$ep_hash
->{os}})){
if
(
$str
=~ m/
$v
/ig){
return
$k
;
}
}
return
0;
}
sub
detect_mobile_ua(){
my
$str
=
shift
;
while
(
my
(
$k
,
$v
) =
each
(%{
$ep_hash
->{browsers}})){
if
(
$str
=~ m/
$v
/ig){
return
$k
;
}
}
return
0;
}
sub
is_phone(){
my
$str
=
shift
;
if
(detect_phone(
$str
) != 0 || detect_mobile_os(
$str
) != 0 || detect_mobile_ua(
$str
) != 0 ){
return
1;
}
return
0;
}
sub
is_tablet(){
my
$str
=
shift
;
if
(detect_tablet(
$str
) != 0 ){
return
1;
}
return
0;
}
sub
is_mobile_os(){
my
$str
=
shift
;
if
(detect_mobile_os(
$str
) != 0 ){
return
1;
}
return
0;
}
sub
is_mobile_ua(){
my
$str
=
shift
;
if
(detect_mobile_ua(
$str
) != 0 ){
return
1;
}
return
0;
}
print
&is_phone
(
$ts
);
}