Ion Auth: Call to undefined function inet_pton()

2 дек. 2012 г. | | |

У замечательной библиотеки для авторизации Ion Auth под CodeIgniter кроме несомненных плюсов и достоинств присутствуют также и недостатки. Например, использование методов php, которые недоступны на windows-платформах. Такая ситуация сложилась с методом inet_pton(), который доступен в windows-версии php только начиная с релиза 5.3.

Чтобы пофиксить Fatal error: Call to undefined function inet_pton(), нужно в \application\models\ion_auth_model.php добавить собственный метод inet_pton():

function inet_pton($ip)
{
   
# ipv4
   
if (strpos($ip, '.') !== FALSE) {
       
$ip = pack('N',ip2long($ip));
    }
   
# ipv6
   
elseif (strpos($ip, ':') !== FALSE) {
       
$ip = explode(':', $ip);
       
$res = str_pad('', (4*(8-count($ip))), '0000', STR_PAD_LEFT);
        foreach (
$ip as $seg) {
           
$res .= str_pad($seg, 4, '0', STR_PAD_LEFT);
        }
       
$ip = pack('H'.strlen($res), $res);
    }
    return
$ip;
}

Код взят отсюда

И в методе Ion_auth_model::_prepare_ip() вызывать его:

0 коммент.:

Отправить комментарий