Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1441 ariadna 1
<?php
2
 
3
namespace Aws\Credentials;
4
 
5
final class CredentialsUtils
6
{
7
    /**
8
     * Determines whether a given host
9
     * is a loopback address.
10
     *
11
     * @param $host
12
     *
13
     * @return bool
14
     */
15
    public static function isLoopBackAddress($host): bool
16
    {
17
        if (!filter_var($host, FILTER_VALIDATE_IP)) {
18
            return false;
19
        }
20
 
21
        if (filter_var($host, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) {
22
            if ($host === '::1') {
23
                return true;
24
            }
25
 
26
            return false;
27
        }
28
 
29
        $loopbackStart = ip2long('127.0.0.0');
30
        $loopbackEnd = ip2long('127.255.255.255');
31
        $ipLong = ip2long($host);
32
 
33
        return ($ipLong >= $loopbackStart && $ipLong <= $loopbackEnd);
34
    }
35
}