function test_ipv6() { $tested_subnets = array(array("ip" => "21DA:00D3:0000:2F3B:02AC:00FF:FE28:9C5A", "cidr" => "21DA:00D3:0000:2F3B::/64", "expected_result" => true), array("ip" => "21DA:00D3:0000:2F3B:04AC:01FF:FE28:9C5A", "cidr" => "21DA:00D3:0000:2F3B::/64", "expected_result" => true), array("ip" => "21DB:00D3:0000:2F3B:02AC:00FF:FE28:9C5A", "cidr" => "21DA:00D3:0000:2F3B::/64", "expected_result" => false), array("ip" => "::1", "cidr" => "0::0/64", "expected_result" => true), array("ip" => "::1", "cidr" => "1::0/64", "expected_result" => false), array("ip" => "::1", "cidr" => "a0::2/4", "expected_result" => true), array("ip" => "::1", "cidr" => "a0::2/64", "expected_result" => false), array("ip" => "::1", "cidr" => "0::0/64", "expected_result" => true), array("ip" => "::1", "cidr" => "127.0.0.1", "expected_result" => false), array("ip" => "::1", "cidr" => "192.168.2.0/24", "expected_result" => false)); foreach ($tested_subnets as $idx => $subnet) { $this->assertEquals($subnet["expected_result"], IP::Match6($subnet["ip"], $subnet["cidr"]), sprintf("Failed with idx: %d, %s", $idx, print_r($subnet, true))); $this->assertEquals($subnet["expected_result"], IP::Match($subnet["ip"], $subnet["cidr"]), sprintf("Failed with idx: %d, %s", $idx, print_r($subnet, true))); } }