Check Device’s User-Agent using Perl

There is a CPAN library that helps to parse the User-Agent. You can download the Perl library at:

http://search.cpan.org/~cmanley/Mobile-UserAgent-1.05/lib/Mobile/UserAgent.pm

After you download the library, perform the usual installation procedures:

perl Makefile.PL
make
make install

The following is the source code:


#!/usr/local/bin/perl
use strict;

use Mobile::UserAgent;
my $uaobj = new Mobile::UserAgent();

The codes above is the standard declaration so that you can call “Mobile::UserAgent” library. The following 3 lines are used for testing purposes. Uncomment the following 3 lines and comment the above 1 line to do some testing.


#my $useragent = 'Nokia6600/1.0 (4.09.1) SymbianOS/7.0s Series60/2.0 '.
#   'Profile/MIDP-2.0 Configuration/CLDC-1.0';
#my $uaobj = new Mobile::UserAgent($useragent);

The following lines check the User-Agent string and pass the output to the subroutine “printWml” if the device suppose WML or the subroutine “printHtml” if the device doesn’t.


if ($uaobj->success()) {
   my $out='Vendor: ' . $uaobj->vendor()     . "\n";
   $out.='Model:    ' . $uaobj->model()      . "\n";
   $out.='Version:  ' . $uaobj->version()    . "\n";
   $out.='Series60: ' . $uaobj->isSeries60() . "\n";
   &printWml($out);
} else {
   &printHtml("Connecting Client is not a mobile user-agent \n");
}


The subroutine “printWml” is used to print the standard WML content on the device.


sub printWml {
   my $string= shift;
   print "Content-Type: text/vnd.wap.wml\r\n\r\n";
print <

  

$string

Test script by Art of Mobile
EOFWML }

The subroutine “printHtml” is used to print the standard HTML content on the browser.


sub printHtml{
   my $string= shift;
   print "Content-Type: text/html\r\n\r\n";
print <
$string EOFHTML }

You can download the full source code at mobileUserAgent.pl.

You can test the example by pointing your mobile phone’s WAP broswer to this url:

http://www.artofmobile.com/cgi-bin/mobile.pl

Comments are closed.