Статьи по программированию

Настройка WHOIS-серверов новых TLD в консольной утилите whois

Консольная утилита whois в Linux-системах предназначена для получения регистрационных данных о владельцах доменных имён, IP-адресов и автономных систем. Подробную справку о работе с ней можно получить командой man whois. Для получения информации утилита использует доступ по WHOIS-протоколу (43-й порт) на внешние WHOIS-сервера корневых доменных зон и региональных интернет-регистраторов (RIR). Список серверов обычно компилируется вместе с программой и по этой причине ограничен, как версией системы, так и временем сборки/обновления дистрибутива OS или самой whois.

Командный сценарий bash для обновления своего статуса в Twitter

Или Как чирикать из терминала
На днях в офисе довольно интересным образом упал ростелекомовский интернет. Браузеры и почта не работали, но вот терминальный доступ к внешнему миру остался. А поскольку делать без интернета в конторе нечего, задумался о возможности постить в твиттер из командной строки. Ниже перевод заметки Luka Pušić (@lukapusic) Command line Twitter status update for Linux and Mac. Кроме перевода, пофиксил один баг, вылезающий для нелатинских кодировок. Так что, лучше копируйте с этой страницы, а не качайте с github.

Парсеры текущих курсов валют центральных банков разных стран мира

Этот набор готовых функций на PHP позволит разработчикам веб-сайтов сконструировать информеры текущих курсов валют для любого банка (страны) из приведенных ниже. Либо регулярно сохранять курсы валют в БД, используя потом их для построения графиков, таблиц и аналитических материалов. Данный код в несколько изменённом виде применяется на проекте http://currency.servisator.ru/

Код распространяется по лицензии GPL.

VBS-скрипт рекурсивного обхода папок на Windows (WSH)

Понадобился тут скрипт для виндов, чтобы обойти все подпапки в указанной и сделать в каждой одно черное дело. Когда подпапок пара тысяч, естественно будешь программу писать, а не руками лазить. Посредством вдумчивого гугления и компиляции разных кусков кода получилось такое:

Читаемая разбивка текста на страницы

Задача описанная в заголовке иногда возникает в разработке сайтов. Суть в следующем: есть очень большой текст (мегабайты), который хотелось бы не выдавать в одну страницу, а разбить на некоторое количество кусков примерно одинакового размера. Объём и структура текста заранее неизвестны. В качестве входных параметров выступают сам текст и номер страницы, которую надо показать. И важное замечание: речь пойдёт о просто текстах без какой-либо HTML-разметки. Тех самых, что живут в файлах с расширениями .txt и MIME-типом text/plain.

Первый вариант кода, что приходит в голову выглядит так:

Программное определение статуса Skype через сервисы skype.com

Система интернет-телефонии Skype предоставляет возможность своим пользователям показать их статус посредством изображения, находящегося по стандартному адресу http://mystatus.skype.com/дизайн_картинки/имя_в_скайп. Если вам необходимо использовать информацию о статусе на своем сайте, но предлагаемые изображения (см. здесь) вас не устраивают, можно написать скрипт на PHP, который получит эту информацию программно.

Программное определение статуса ICQ через сервисы icq.com

Чтобы самым простым образом программно в PHP определить статус пользователя в ICQ, воспользуемся сервисом сайта www.icq.com, который отдаёт картинку со статусом. Сервис работает примерно так. При запросе адреса http://status.icq.com/online.gif?icq=HOMEP_ICQ сервер проверяет наличие пользователя в сети, его настройки безопасности и просто перенаправляет клиента на одну из трех картинок, приведённых в заголовке заметки.

Ограничение числа подключений при скачивании файлов в PHP

Развивая тему закачки файлов через скрипты PHP с ограничением скорости рассмотрим ограничение количества скачиваемых файлов.

Для ограничения количества закачиваемых файлов, по какому-либо критерию, нам потребуется организовать обмен данными между двумя копиями одного скрипта, запущенными в пределах сеанса клиента. Это можно организовать через сохранение информации о запуске скрипта в базе данных или файле, установкой «куки» или использованием сессионных переменных. Правда, ограничения привязанные к сессии или cookie вряд ли могут надёжно помочь нам в этом случае. Клиенту достаточно очистить cookies или воспользоваться другим браузером или программой закачки. Единственный реальный на мой взгляд способ должен использовать ограничение количества закачиваемых файлов на основе IP-адреса клиента.

Ограничение скорости скачивания файла в PHP

В предыдущей заметке я рассмотрел способы отдачи файла через скрипт PHP. Приведенная там функция file_download() позволяет отдать произвольный файл, имя которого может быть параметром скрипта или быть заданным константой. Скорость закачки этого файла будет определятся только возможностями сервера и канала связи между ним и клиентом.

В случае большого количества подключений к одному или нескольким файлам через скрипт, может наблюдаться перегрузка сервера. Один из методов борьбы с такой перегрузкой – это ограничение как скорости скачивания файла, так и числа подключений от одного клиента или IP-адреса. Поскольку файл у нас отдаётся клиенту программно, то и регулировать скорость отдачи файла и число подключений мы будем таким же образом.

Скачивание файлов в PHP

Многие ресурсы используют файловые хранилища. Кроме возможностей загрузки и хранения файлов, бывает необходимо организовать их скачивание. Одно дело когда файлы лежат в открытом доступе, но и тогда может потребоваться передача файла через PHP. Например, администратору ресурса может быть нужна информация о количестве скачиваний. Для файлов большого объема до сих пор требуется возможность докачки, что пожалуй и является самым трудным моментом для серверных скриптов. Посмотрим как можно организовать работу скрипта на PHP, который позволяет реализовать все вышеуказанные возможности.

Синдикация материалов