Sunday, February 06, 2011

Автоматическая проверка репутации IP-адреса

Репутация IP-адреса — одна из очень важных составляющих, используемых для борьбы с почтовым спамом.

Письма приходят с IP-адресов, а репутация этих адресов может сказать, является ли данный адрес ответственным за рассылку спама или нет. По некоторым данным проверка репутации IP-адресов позволяет остановить порядка 80% спама.
Как следствие, компании, занимающиеся массовой рассылкой электронных писем, должны заботиться о поддержании хорошей репутации адресов своих почтовых серверов.
Очень часто для отправки писем используется множество адресов — в частности из-за того, что крупные почтовые сервисы (GMail, Yahoo!, Hotmail, AOL, ….) имеют различные ограничения на количество сообщений, принимаемых с одного адреса, а также на скорость отправки почтовых сообщений. Например, компания, которую мы консультируем, рассылает более 100,000,000 писем в месяц, для чего используется не один десяток IP-адресов.
Естественно, что ручная проверка сотен адресов в десятке различных сервисов — занятие неблагодарное и утомительное. Но, к счастью, всё автоматизируется, что будет рассмотрено на примере PHP.

Очень часто для извлечения данных из web-страницы (data scraping) используются регулярные выражения. Но это вчерашний день  К тому же не всегда просто составить эффективное регулярное выражение, которое сразу выберет все необходимые данные — с большой вероятностью могут потребоваться несколько выражений и доводка результата напильником.
Простая и достойная альтернатива регулярным выражениям — XPath. Тем более, что построить нужный XPath можно при помощи FireBug (он позволяет скопировать адрес выделенного элемента как XPath).

Рассмотрим на примере SenderScore. Репутация проверяется по ссылке вида https://senderscore.org/lookup.php?lookup=1.1.1.1, где вместо 1.1.1.1 задаётся IP-адрес.

Read more: Ars Longa, Vita Brevis