示例#1
0
 /**
  * Does IP Address Match?
  *
  * @param  \Darsyn\IP\IP $clientIp
  * @return boolean
  */
 protected function doesIpAddressMatch(IP $clientIp)
 {
     foreach ($this->ipAddresses as $ipAddress) {
         try {
             $cidr = 128;
             if (preg_match('#^(.+)/([1-9]\\d{0,2})$#', $ipAddress, $matches)) {
                 $ipAddress = $matches[1];
                 $cidr = (int) $matches[2];
             }
             $ipAddress = new IP($ipAddress);
             if ($ipAddress->inRange($clientIp, min($ipAddress->isVersion(IP::VERSION_4) ? $cidr + 96 : $cidr, 128))) {
                 return true;
             }
         } catch (\InvalidArgumentException $e) {
             continue;
         }
     }
     return false;
 }
示例#2
0
文件: IPTest.php 项目: darsyn/ip
 /**
  * Test: Get and Is Version
  *
  * @test
  * @dataProvider ipVersions
  * @access public
  * @param string $ip
  * @param integer $version
  * @return void
  */
 public function getAndIsVersion($ip, $version)
 {
     $ip = new IP($ip);
     $notVersion = $version === 4 ? 6 : 4;
     $this->assertSame($version, $ip->getVersion());
     $this->assertTrue($ip->isVersion($version));
     $this->assertFalse($ip->isVersion($notVersion));
 }