Пример #1
0
 /**
  * Test that ip() validates v4 and v6 IPs.
  */
 public function testIp()
 {
     // both v4 and v6
     $this->assertTrue(Validate::ip('0.0.0.0'));
     $this->assertTrue(Validate::ip('192.168.1.156'));
     $this->assertTrue(Validate::ip('255.255.255.255'));
     $this->assertTrue(Validate::ip('2001:0db8:85a3:0000:0000:8a2e:0370:7334'));
     $this->assertFalse(Validate::ip('127.0.0'));
     $this->assertFalse(Validate::ip('127.0.0.a'));
     $this->assertFalse(Validate::ip('127.0.0.256'));
     $this->assertFalse(Validate::ip('2001:db8:85a3::8a2e:37023:7334'));
     // v4
     $this->assertTrue(Validate::ip('0.0.0.0', Validate::IPV4));
     $this->assertTrue(Validate::ip('192.168.1.156', Validate::IPV4));
     $this->assertTrue(Validate::ip('255.255.255.255', Validate::IPV4));
     $this->assertFalse(Validate::ip('127.0.0', Validate::IPV4));
     $this->assertFalse(Validate::ip('127.0.0.a', Validate::IPV4));
     $this->assertFalse(Validate::ip('127.0.0.256', Validate::IPV4));
     $this->assertFalse(Validate::ip('2001:0db8:85a3:0000:0000:8a2e:0370:7334', Validate::IPV4));
     // v6
     $this->assertTrue(Validate::ip('2001:0db8:85a3:0000:0000:8a2e:0370:7334', Validate::IPV6));
     $this->assertTrue(Validate::ip('2001:db8:85a3:0:0:8a2e:370:7334', Validate::IPV6));
     $this->assertTrue(Validate::ip('2001:db8:85a3::8a2e:370:7334', Validate::IPV6));
     $this->assertTrue(Validate::ip('2001:0db8:0000:0000:0000:0000:1428:57ab', Validate::IPV6));
     $this->assertTrue(Validate::ip('2001:0db8:0000:0000:0000::1428:57ab', Validate::IPV6));
     $this->assertTrue(Validate::ip('2001:0db8:0:0:0:0:1428:57ab', Validate::IPV6));
     $this->assertTrue(Validate::ip('2001:0db8:0:0::1428:57ab', Validate::IPV6));
     $this->assertTrue(Validate::ip('2001:0db8::1428:57ab', Validate::IPV6));
     $this->assertTrue(Validate::ip('2001:db8::1428:57ab', Validate::IPV6));
     $this->assertTrue(Validate::ip('0000:0000:0000:0000:0000:0000:0000:0001', Validate::IPV6));
     $this->assertTrue(Validate::ip('::1', Validate::IPV6));
     $this->assertTrue(Validate::ip('::ffff:12.34.56.78', Validate::IPV6));
     $this->assertTrue(Validate::ip('::ffff:0c22:384e', Validate::IPV6));
     $this->assertTrue(Validate::ip('2001:0db8:1234:0000:0000:0000:0000:0000', Validate::IPV6));
     $this->assertTrue(Validate::ip('2001:0db8:1234:ffff:ffff:ffff:ffff:ffff', Validate::IPV6));
     $this->assertTrue(Validate::ip('2001:db8:a::123', Validate::IPV6));
     $this->assertTrue(Validate::ip('fe80::', Validate::IPV6));
     $this->assertTrue(Validate::ip('::ffff:192.0.2.128', Validate::IPV6));
     $this->assertTrue(Validate::ip('::ffff:c000:280', Validate::IPV6));
     $this->assertFalse(Validate::ip('123', Validate::IPV6));
     $this->assertFalse(Validate::ip('ldkfj', Validate::IPV6));
     $this->assertFalse(Validate::ip('2001::FFD3::57ab', Validate::IPV6));
     $this->assertFalse(Validate::ip('2001:db8:85a3::8a2e:37023:7334', Validate::IPV6));
     $this->assertFalse(Validate::ip('2001:db8:85a3::8a2e:370k:7334', Validate::IPV6));
     $this->assertFalse(Validate::ip('1:2:3:4:5:6:7:8:9', Validate::IPV6));
     $this->assertFalse(Validate::ip('1::2::3', Validate::IPV6));
     $this->assertFalse(Validate::ip('1:::3:4:5', Validate::IPV6));
     $this->assertFalse(Validate::ip('1:2:3::4:5:6:7:8:9', Validate::IPV6));
     $this->assertFalse(Validate::ip('::ffff:2.3.4', Validate::IPV6));
     $this->assertFalse(Validate::ip('::ffff:257.1.2.3', Validate::IPV6));
     $this->assertFalse(Validate::ip('255.255.255.255', Validate::IPV6));
 }