Как работать с IPv6 в PHP

13 комментариев

Работа с IPv6 в PHP

Вольный перевод:
https://www.mikemackintosh.com/5-tips-for-working-with-ipv6-in-php/

Работать с IPv4 в php было очень просто, для этого существовало две функции ip2long и long2ip. Эти функции давали возможность переводить IP адрес в обычное число и обратно. К сожалению, в IPv6 такой возможности нет.

Адрес IPv4 состоит из 32 бит — размер который изначально поддерживает большинство операционных систем и языков программирования. 32-ух и более битные платформы поддерживают работу с числами от 0 до 4 294 967 295 (или 232, которое и является максимальным количеством IP адресов в сети). Это давало возможность преобразовывать адрес в число, что в свою очередь давало возможность экономично использовать память и ресурсы системы.

С IPv6 же другая история. На данный момент большинство компьютеров используют 64-ех битную архитектуру, и работают под управлением 64-ех битной ОС. Самое большое беззнаковое число допустимое на 64bit платформе — 18 446 744 073 709 551 616 (или 264). Но IPv6 допускает несоизмеримо больше количество адресов — 340 282 366 920 938 463 463 374 607 431 770 000 000 (или 2128). Это очень огромное число, и, к сожалению, это приводит к проблемам при работе с ним. Читать далее →

Почему FastVps лучше чем sweb. Наглядно.

6 комментариев

Собственно вот почему:
23 (1)
Не то чтобы это реклама FastVPS, скорее это антиреклама Sweb. Ни для кого не секрет что мой блог продолжительное время хостился на Sweb. Как же меня жутко бесили постоянные ошибки… На графике наглядно видно их количество. Как на сайт ни зайдешь — либо нет ответа, либо 500, либо еще что-то. В техподдержку пишешь — отвечают через сутки — «у нас все нормально».

Но 23.07.2015 я переехал на VPS от FastVPS, и с этого дня уже три месяца аптайм 100%. Может конечно и 3 месяца — не срок, но все-таки показатель. Читать далее →

Дмитрий Амиров

24.10.2015

Писать код это всегда лучше чем не писать код :)

Как рестартануть ISP 5

1 комментарий

Перезапустить ISP Manager 5 можно выполнив:
/usr/local/mgr5/sbin/mgrctl -m ispmgr exit
или
killall core
Частенько это требуется после изменения конфига панели /usr/local/mgr5/etc/ispmgr.conf

PS: надоело гуглить это, пусть будет под рукой

Переехал на HTTPS, включил HTTP/2

20 комментариев

SSL, HSTS, HTTP2 Сегодня перевел свой блог на HTTPS. Зачем? Не знаю, но почему бы и нет?) Наверное это больше связано с популязацией https в интернете в целом. Поправил конфиг SSL, получив A+ в ssllabs. Добавил Strict Transport Security. Обновил nginx до последней версии 1.9.5, подключив HTTP/2. В целом неплохо так получилось.

Под катом подробнее об этом.

Читать далее →

qTranslate-X вывод статьи в другом языке

3 комментария

Допустим установлен у вас плагин qTranslate-X. Допустим есть два языка: русский и английский. К примеру вам нужно вывести и русский и английский заголовок статьи на русскоязычной версии сайта. Сходу это сделать не получится, т.к. этот плагин автоматически переводит всю статью на текущий язык.

Делается это так:

$postId = get_the_ID();

wp_cache_delete($postId, 'posts');
$mypost = WP_Post::get_instance($postId);

$titleEn = qtrans_use('en', $mypost->post_title, false);

$titleEn — будет содержать заголовок на английском. В общем вот и все. Подробнее почему именно так, смотрите далее.

Читать далее →

Неявная проблема ON DUPLICATE KEY и AUTO INCREMENT

14 комментариев

Сейчас хочу вам предложить обсудить один интересный факт. Возьмем обычную таблицу:

CREATE TABLE `test_table` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`date` DATE NOT NULL ,
`value` INT UNSIGNED NOT NULL ,
PRIMARY KEY ( `id` ) ,
UNIQUE ( `date` )
) ENGINE = INNODB ;

В ней три поля:

  1. id — первичный ключ с автоинкриментом
  2. date — уникальный ключ
  3. value — некие данные

Не так давно я писал насколько круто использовать конструкцию ON DUPLICATE KEY. Но как оказалось, данная конструкция имеет один подводный камень.
Читать далее →

Дмитрий Амиров

05.08.2015

Программировать — это легко. Надо просто символы в нужном порядке печатать.

Простите за баян :)