コード例 #1
0
 public function testWithObjects()
 {
     $criteria = Criteria::create(TestUser::dao())->add(Expression::containsIp(IpRange::create('192.168.1.1-192.168.1.255'), 'ip'))->addProjection(Projection::property('id'));
     $this->assertEquals($criteria->toDialectString(PostgresDialect::me()), 'SELECT "test_user"."id" FROM "test_user" WHERE "test_user"."ip" <<= \'192.168.1.1-192.168.1.255\'');
     $criteria = Criteria::create(TestInternetProvider::dao())->add(Expression::containsIp('range', IpAddress::create('42.42.42.42')))->addProjection(Projection::property('id'));
     $this->assertEquals($criteria->toDialectString(PostgresDialect::me()), 'SELECT "test_internet_provider"."id" FROM "test_internet_provider" WHERE \'42.42.42.42\' <<= "test_internet_provider"."range"');
 }
コード例 #2
0
ファイル: IpRewrite.php プロジェクト: agiper/wordpress
 protected static function rewrite()
 {
     // only should be run once per page load
     if (self::$is_cf !== NULL) {
         return;
     }
     // Set this based on the presence of the header, so it is true even if IP has already been rewritten
     self::$is_cf = isset($_SERVER["HTTP_CF_CONNECTING_IP"]) ? TRUE : FALSE;
     // Store original remote address in $original_ip
     self::$original_ip = isset($_SERVER["REMOTE_ADDR"]) ? $_SERVER["REMOTE_ADDR"] : FALSE;
     // Process original_ip if on cloudflare
     if (self::$is_cf && self::$original_ip) {
         // Check for IPv4 v. IPv6
         if (strpos(self::$original_ip, ":") === FALSE) {
             foreach (self::$cf_ipv4 as $range) {
                 if (IpRange::ipv4_in_range(self::$original_ip, $range)) {
                     if (self::$is_cf) {
                         self::$rewritten_ip = $_SERVER["REMOTE_ADDR"] = $_SERVER["HTTP_CF_CONNECTING_IP"];
                     }
                     break;
                 }
             }
         } else {
             $ipv6 = IpRange::get_ipv6_full(self::$original_ip);
             foreach (self::$cf_ipv6 as $range) {
                 if (IpRange::ipv6_in_range($ipv6, $range)) {
                     if (self::$is_cf) {
                         self::$rewritten_ip = $_SERVER["REMOTE_ADDR"] = $_SERVER["HTTP_CF_CONNECTING_IP"];
                     }
                     break;
                 }
             }
         }
     }
 }
コード例 #3
0
 public function testIpRangeProperty()
 {
     foreach (DBTestPool::me()->getPool() as $db) {
         DBPool::me()->setDefault($db);
         $akado = TestInternetProvider::create()->setName('Akada')->setRange(IpRange::create(IpAddress::create('192.168.1.1'), IpAddress::create('192.168.1.42')));
         TestInternetProvider::dao()->add($akado);
         $plainRange = Criteria::create(TestInternetProvider::dao())->addProjection(Projection::property('range'))->add(Expression::eq('name', 'Akada'))->getCustom();
         $this->assertEquals($plainRange['range'], '192.168.1.1-192.168.1.42');
         TestInternetProvider::dao()->add(TestInternetProvider::create()->setName('DomRu')->setRange(IpRange::create('192.168.2.0/24')));
         $list = Criteria::create(TestInternetProvider::dao())->addOrder('id')->getList();
         $this->assertEquals(count($list), 2);
     }
 }
コード例 #4
0
 public function testCreation()
 {
     $range = IpRange::create('192.168.2.1-192.168.255.255');
     $anotherRange = IpRange::create(IpAddress::create('192.168.2.1'), IpAddress::create('192.168.255.255'));
     $this->assertEquals($range->toString(), $anotherRange->toString());
     try {
         $range = IpRange::create('192.168.2.1-192.168.255.666');
         $this->fail();
     } catch (WrongArgumentException $e) {
         /**/
     }
     try {
         $range = IpRange::create('192.168.666.1-192.168.255.254');
         $this->fail();
     } catch (WrongArgumentException $e) {
         /**/
     }
     try {
         $range = IpRange::create(array(array(array(false))));
         $this->fail();
     } catch (WrongArgumentException $e) {
         /**/
     }
     $slashRange = IpRange::create('192.168.1.0/30');
     $this->assertEquals('192.168.1.0', $slashRange->getStart()->toString());
     $this->assertEquals('192.168.1.3', $slashRange->getEnd()->toString());
     try {
         $range = IpRange::create('192.168.1.0/4');
         $this->fail();
     } catch (WrongArgumentException $e) {
         /**/
     }
     $range = IpRange::create('8.8/16');
     $this->assertEquals($range->toString(), '8.8.0.0-8.8.255.255');
     $range = IpRange::create('192.168.1.1');
     $this->assertEquals($range->getStart()->toString(), $range->getEnd()->toString());
 }
コード例 #5
0
ファイル: IpRangeController.php プロジェクト: nellka/mebel
 /**
  * Returns the data model based on the primary key given in the GET variable.
  * If the data model is not found, an HTTP exception will be raised.
  * @param integer $id the ID of the model to be loaded
  * @return IpRange the loaded model
  * @throws CHttpException
  */
 public function loadModel($id)
 {
     $model = IpRange::model()->findByPk($id);
     if ($model === null) {
         throw new CHttpException(404, 'The requested page does not exist.');
     }
     return $model;
 }