Requests_SSL::match_domain()

最后更新于:2021-11-26 04:05:38

Requests_SSL::match_domain( string$host, string$reference)

Match a hostname against a dNSName reference

参数

$host

(string) (Required) Requested host

$reference

(string) (Required) dNSName to match against

响应

(boolean) Does the domain match?

源文件

文件: gc-includes/Requests/SSL.php

	public static function match_domain($host, $reference) {
		// Check if the reference is blocklisted first
		if (self::verify_reference_name($reference) !== true) {
			return false;
		}

		// Check for a direct match
		if ($host === $reference) {
			return true;
		}

		// Calculate the valid wildcard match if the host is not an IP address
		// Also validates that the host has 3 parts or more, as per Firefox's
		// ruleset.
		if (ip2long($host) === false) {
			$parts    = explode('.', $host);
			$parts[0] = '*';
			$wildcard = implode('.', $parts);
			if ($wildcard === $reference) {
				return true;
			}
		}

		return false;
	}