Friday, December 14, 2012

Finding geo location of the ip address in PHP



      If you are using  google map  in your  application and  wanted to  show the user location google map in your application.  then we  the find the  ip  address  and  get the  geo location of the  ip  address. Bellow  is the  method   to  find the  city  by  passing  the  ip  address Using  PHP.


/**
 * Funtion  to  find the  city by passing the  IP Address.
 */
function geoCheckIP($ip)
{

//check, if the provided ip is valid

    if (!filter_var($ip, FILTER_VALIDATE_IP))
    {

        throw new InvalidArgumentException("IP is not valid");
    }

//contact ip-server

    $response = @file_get_contents('http://www.netip.de/search?query=' . $ip);

    if (empty($response))
    {

        throw new InvalidArgumentException("Error contacting Geo-IP-Server");
    }

//Array containing all regex-patterns necessary to extract ip-geoinfo from page

    $patterns = array();

    $patterns["town"] = '#City: (.*?)<br#i';

//Array where results will be stored

    $ipInfo = array();



//check response from ipserver for above patterns

    foreach ($patterns as $key => $pattern)
    {

//store the result in array

        $ipInfo[$key] = preg_match($pattern, $response, $value) && !empty($value[1]) ? $value[1] : 'not found';
    }
    /* I've included the substr function for Country to exclude the abbreviation (UK, US, etc..)
      To use the country abbreviation, simply modify the substr statement to:
      substr($ipInfo["country"], 0, 3)
     */
    $ipdata = $ipInfo["town"];

    return $ipdata;
}

geoCheckIP('50.56.112.226');


For  more  dinformation and send  me comments.


Getting Client IP using PHP


          To  track the client  location we  need the ip  address of the  user machine/ mobile  device. As PHP is a  Server  side  script we  can  easilly  track the user/client ip  address using the bellow  php function.  



function getRealIpAddr()
{
    if (!empty($_SERVER['HTTP_CLIENT_IP']))
    //check ip from share internet
    {
        $ip = $_SERVER['HTTP_CLIENT_IP'];
    }
    elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
    //to check ip is pass from proxy
    {
        $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    else
    {
        $ip = $_SERVER['REMOTE_ADDR'];
    }
    return $ip;
}

$ip = getRealIpAddr();

For  feedback ,  leave  me comments.

Fetching the images based on screen resolution

      One  of the  main  issues in the  mobile web  application  is to  fetch  the  images  based on the  mobile  screen  resolution .  There  are  different  method to fetch  the  images  but  im here explain,   fetching the  image  based on the  screen  resolution.   Normally in the android  mobile  we  will  calculate the DPI(density per  inches) and  in the  iphone PPI(pixel per inches) . Here  im  taking the  screen  resolution.


    function getResolution()
    {
        window.imagePath ='';
        //get screen resolution of customer
        var custHeight = screen.height;
        var custWidth = screen.width;
        //if the  screed width  less  then  screen  height
        if( custWidth < custHeight)
        {    
            if (custWidth <=  320)
            {
                window.imagePath = 'drawable-mdpi';
            }
            else if (custWidth <= 480)
            {
                window.imagePath = 'drawable-hdpi';
            }
            else
            {
                window.imagePath = 'drawable-xhdpi';
            }
        }
        else
        {
            //else if the  screed width  greater  then  screen  height 
            if (custWidth <=  480)
            {
                window.imagePath = 'drawable-mdpi';
            }
            else if (custWidth <= 600)
            {
                window.imagePath = 'drawable-hdpi';
            }
            else
            {
                window.imagePath = 'drawable-xhdpi';
            }
        }    
    } 

Just  call  the getResolution() method  when  the  page  first  loads.  then use  the  window.imagePath anywhere in your  application. window.imagePath is the  global  varible  here.

This post  will really  help  you.  For  feed  back  leave  me comments.






Hidding the Address Bar in Mobile Browser


          All Mobile  web application need  address  bar hiding  option,  becuase basically  mobile  screens are very  small  in size  compared  to  the  Desktop.

      Use bellow to  code  to  hide the  address.  It  may help you  to  solve the  other  sort  of  challenges.

     function hideAddressBar()
    {
        if(!window.location.hash)
        {
        if(document.height < window.outerHeight)
        {
            document.body.style.height = (window.outerHeight + 50) + 'px';
        }
         setTimeout( function(){ window.scrollTo(0, 1); }, 200 );
          setInterval("hideAddressBar()", 6000);
        }  
    }
  

Use  the  code  and call function hideAddressBar(); whenever you  required to  hide  the  address  bar.

hope,  It  may help  you. If you have  any  query  leave  me comments.