示例#1
0
 /**
  * @dataProvider invalidIpsProvider
  */
 public function testInvalidIp($ip)
 {
     $ipTools = new IpTools();
     $this->assertFalse($ipTools->validIp($ip));
 }
示例#2
0
 /**
  * Parse server string into array with host and port keys
  *
  * @param $server   server string in various formattes
  * @return array    Array containing 'host' key with server host and 'port' if defined in original $server string
  */
 public function parseServer($server)
 {
     $server = trim($server);
     $server = preg_replace('/\\/$/', '', $server);
     $ipTools = new IpTools();
     if ($ipTools->validIpv6($server)) {
         $result = array('host' => "[{$server}]");
     } else {
         $parsed = parse_url($server);
         if (array_key_exists('path', $parsed) && !array_key_exists('host', $parsed)) {
             $host = preg_replace('/\\//', '', $parsed['path']);
             // if host is ipv6 with port. Example: [1a80:1f45::ebb:12]:8080
             if (preg_match('/^(\\[[a-f0-9:]+\\]):(\\d{1,5})$/i', $host, $matches)) {
                 $result = array('host' => $matches[1], 'port' => $matches[2]);
             } else {
                 $result = array('host' => $host);
             }
         } else {
             $result = $parsed;
         }
     }
     return $result;
 }