You are here

protected function DomainPart::checkIPV4Tag in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/egulias/email-validator/src/Egulias/EmailValidator/Parser/DomainPart.php \Egulias\EmailValidator\Parser\DomainPart::checkIPV4Tag()
1 call to DomainPart::checkIPV4Tag()
DomainPart::doParseDomainLiteral in vendor/egulias/email-validator/src/Egulias/EmailValidator/Parser/DomainPart.php

File

vendor/egulias/email-validator/src/Egulias/EmailValidator/Parser/DomainPart.php, line 221

Class

DomainPart

Namespace

Egulias\EmailValidator\Parser

Code

protected function checkIPV4Tag($addressLiteral) {
  $matchesIP = array();

  // Extract IPv4 part from the end of the address-literal (if there is one)
  if (preg_match('/\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/', $addressLiteral, $matchesIP) > 0) {
    $index = strrpos($addressLiteral, $matchesIP[0]);
    if ($index === 0) {
      $this->warnings[] = EmailValidator::RFC5321_ADDRESSLITERAL;
      return false;
    }

    // Convert IPv4 part to IPv6 format for further testing
    $addressLiteral = substr($addressLiteral, 0, $index) . '0:0';
  }
  return $addressLiteral;
}