akismet_get_host

Definition:
function akismet_get_host($host) {}

Parameters

  • $host

Source code

function akismet_get_host($host) {

	// if all servers are accessible, just return the host name.

	// if not, return an IP that was known to be accessible at the last check.

	if ( akismet_server_connectivity_ok() ) {

		return $host;

	} else {

		$ips = akismet_get_server_connectivity();

		// a firewall may be blocking access to some Akismet IPs

		if ( count($ips) > 0 && count(array_filter($ips)) < count($ips) ) {

			// use DNS to get current IPs, but exclude any known to be unreachable

			$dns = (array)gethostbynamel( rtrim($host, '.') . '.' );

			$dns = array_filter($dns);

			foreach ( $dns as $ip ) {

				if ( array_key_exists( $ip, $ips ) && empty( $ips[$ip] ) )

					unset($dns[$ip]);

			}

			// return a random IP from those available

			if ( count($dns) )

				return $dns[ array_rand($dns) ];

			

		}

	}

	// if all else fails try the host name

	return $host;

}

449

No comments yet... Be the first to leave a reply!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: