Apache2-ApacheMobileFilter
view release on metacpan or search on metacpan
lib/Apache2/AMFCommonLib.pm view on Meta::CPAN
print "$data - $self->{'printLog'}\n";
}
sub CleanUa {
my $self = shift;
my $UserAgent;
if (@_) {
$UserAgent = shift;
}
my $string="";
$UserAgent =~ s/\ //g;
#$UserAgent =~ s/([0-9\\.]+).*?//g;
$UserAgent =~ s/iemobile \/([0-9\\.]+).*?/iemobile /g;
$UserAgent =~ s/series40\/([0-9\\.]+)...(!?abc)*?/series40/g;
$UserAgent =~ s/series60\/([0-9\\.]+)...(!?abc)*?/series60/g;
if ( $UserAgent =~ m/^outlook/i ) {
$UserAgent=substr($UserAgent,index($UserAgent,'(') + 1,length($UserAgent) - index($UserAgent,'(') -2);
}
if ( $UserAgent =~ m/windows nt/i) {
my $first=substr($UserAgent,0,index($UserAgent,'windows nt') + 12);
my $second="";
if (length($UserAgent) > index($UserAgent,'windows nt') + 14) {
$second=substr($UserAgent,index($UserAgent,'windows nt') + 14);
}
$UserAgent=$first.$second;
}
my @arrayFile=split(/\ /, $UserAgent);
foreach my $field (@arrayFile) {
if ($field =~ m/applewebkit/i || $field =~ m/chrome/i || $field =~ m/safari/i) {
my ($first,$second)=split(/\//, $field);
$string=$string." ".$first;
} else {
$string=$string." ".$field;
}
}
$string=substr($string,1);
return $string;
}
sub GetMultipleUa {
my $self = shift;
my $UserAgent;
my $deep;
my $count=0;
if (@_) {
$UserAgent = shift;
$deep = shift;
}
my $length=length($UserAgent);
my %ArrayUAparse;
if (substr($UserAgent,$length-1,1) eq ')') {
$UserAgent=substr($UserAgent,0,$length-1);
}
$UserAgent =~ s/\ /|/g;
$UserAgent =~ s/\//|/g;
$UserAgent =~ s/\-/|/g;
$UserAgent =~ s/\_/|/g;
$UserAgent =~ s/\./|/g;
my @pairs = split(/\|/, $UserAgent);
my $deep_to_verify=scalar(@pairs) - $deep - 1;
my $ind=0;
my $string="";
if ($deep > scalar(@pairs)) {
$deep=scalar(@pairs) - 1;
}
foreach my $key (@pairs) {
if ($ind==0) {
$string=$key;
} else {
$string=$string." ".$key;
}
if ($ind > $deep - 1) {
$ArrayUAparse{$ind}=$string;
}
$ind++;
}
return %ArrayUAparse;
}
sub androidDetection {
my $self = shift;
my $ua="";
if (@_) {
$ua = shift;
}
#print "$ua----------\n";
my $version='nc';
my $os='nc';
if (index($ua,'android') > -1 ) {
#my $string_to_parse=substr($ua,index($ua,'(') + 1,index($ua,')'));
my @param=split(/\;/,$ua);
#my ($dummy1,$dummy2,$vers,$lan,$dummy5)=split(/\;/,$string_to_parse);
my $element=scalar @param;
my $count=0;
my $count_add=0;
my @param_ua;
if ($element > 0) {
while ($count<$element) {
if (index($param[$count],'-')>-1 && length($param[$count])==6) {
} elsif (length($param[$count])==2) {
} elsif (index($param[$count],'android')>-1) {
($os,$version)=split(/ /,$param[$count]);
if ($version) {
if (index($version,'.') > -1) {
$version =~ s/\.//g;
}
}
$param_ua[$count_add]="android xx";
$count_add++;
} else {
$param_ua[$count_add]=$param[$count];
$count_add++;
}
$count++;
}
$count=0;
$element=scalar @param_ua;
$ua = "";
while ($count < $element) {
( run in 0.777 second using v1.01-cache-2.11-cpan-13bb782fe5a )