home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2008 February / PCWFEB08.iso / Software / Resources / Developers / XAMPP 1.5.4 / Windows installer / xampp-win32-1.5.4-installer.exe / xampp / php / pear / Net / CheckIP.php next >
Encoding:
PHP Script  |  2006-04-07  |  2.3 KB  |  81 lines

  1. <?php
  2. /* 
  3.  * Copyright (c) 2002-2006 Martin Jansen
  4.  *
  5.  * Permission is hereby granted, free of charge, to any person obtaining
  6.  * a copy of this software and associated documentation files (the 
  7.  * "Software"), to deal in the Software without restriction, including 
  8.  * without limitation the rights to use, copy, modify, merge, publish, 
  9.  * distribute, sublicense, and/or sell copies of the Software, and to 
  10.  * permit persons to whom the Software is furnished to do so, subject to 
  11.  * the following conditions:
  12.  *
  13.  * The above copyright notice and this permission notice shall be included 
  14.  * in all copies or substantial portions of the Software.
  15.  *
  16.  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  17.  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  18.  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
  19.  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  20.  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
  21.  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
  22.  * DEALINGS IN THE SOFTWARE.
  23.  *
  24.  * $Id: CheckIP.php,v 1.7 2006/02/06 14:39:53 mj Exp $
  25.  */
  26.  
  27. /**
  28. * Class to validate the syntax of IPv4 adresses
  29. *
  30. * Usage:
  31. *   <?php
  32. *   require_once "Net/CheckIP.php";
  33. *     
  34. *   if (Net_CheckIP::check_ip("your_ip_goes_here")) {
  35. *       // Syntax of the IP is ok
  36. *   }
  37. *   ?>
  38. *
  39. * @author  Martin Jansen <mj@php.net>
  40. * @author  Guido Haeger <gh-lists@ecora.de>
  41. * @package Net_CheckIP
  42. * @version 1.1
  43. * @access  public
  44. */
  45. class Net_CheckIP
  46. {
  47.  
  48.     /**
  49.     * Validate the syntax of the given IP adress
  50.     *
  51.     * This function splits the IP address in 4 pieces
  52.     * (separated by ".") and checks for each piece
  53.     * if it's an integer value between 0 and 255.
  54.     * If all 4 parameters pass this test, the function
  55.     * returns true.
  56.     *
  57.     * @param  string $ip IP adress
  58.     * @return bool       true if syntax is valid, otherwise false
  59.     */
  60.     function check_ip($ip)
  61.     {
  62.         $oct = explode('.', $ip);
  63.         if (count($oct) != 4) {
  64.             return false;
  65.         }
  66.  
  67.         for ($i = 0; $i < 4; $i++) {
  68.             if (!is_numeric($oct[$i])) {
  69.                 return false;
  70.             }
  71.  
  72.             if ($oct[$i] < 0 || $oct[$i] > 255) {
  73.                 return false;
  74.             }
  75.         }
  76.  
  77.         return true;
  78.     }
  79. }
  80. ?>
  81.