Una de las soluciones al spam es una frecuente actualización de la base de datos con direcciones IP que aparecen a portarse mal. Esta base de datos debe, preferiblemente, ser de acceso aleatorio a gran velocidad. DNS ofrece una solución para eso.
Introducción.
Afortunadamente Internet ha encontrado respuestas para la immens creciente problema de spam. Una solución es una frecuente actualización de la base de datos con direcciones IP que aparecen a portarse mal. Esta base de datos debe, preferiblemente, ser de acceso aleatorio a gran velocidad. DNS ofrece una solución para eso.
Entradas DNS puede ser actualizada rápidamente. Asimismo, en su mayoría no hay necesidad de descargar una copia de la (potencialmente grande) de base de datos con frecuencia. Si un servidor de correo puede detectar, en una fracción de segundo, que el envío de la propiedad intelectual es actualmente la lista negra, por ejemplo, ya que estaba infectado por un virus y se utilizan como retransmisión abierta, que puede bloquear la recepción effictively.
Un conocido proveedor de DNSBL spamhouse.org. Para un (completar) la lista de los proveedores de DNSBL, miraaquí
Uso
Ambos servidores SMTP y clientes de correo (o el buzón de limpieza) pueden utilizar este método. La ruta de un mensaje de correo es siempre fueron almacenados, de modo que siempre puede recuperar el carácter originario de propiedad intelectual. Esta es una parte esencial del protocolo SMTP.
Usando el protocolo POP3, puede ver una casilla de correo, top (arriba significa: buscar sólo la cabecera del mensaje), las cabeceras de los mensajes, y ver si están mirando una lista negra en el "Recibido: a partir de somehost (1.2.3.4)" líneas.
Dado que estas bases de datos de spam puede ser actualizado con frecuencia, pueden detectar de manera eficaz una gran cantidad (> 50%?) De spam.
¿Cómo funciona?
Básicamente, lo que hay que hacer es verificar en contra de una DNSBL (DNS de bloques), la fuente, al igual que
www.spamhaus.org. Esto se hace de la siguiente manera:
Supongamos que desea comprobar si la dirección IP 60.70.80.90 es un spammer, que acaba de realizar una consulta DNS a sbl.spamhaus.org con la (invertido) dirección ip, al igual que
Consulta DNS: 90.80.70.60.sbl.spamhaus.org
si a usted le da una vuelta un registro, se trata de un spammer. si no volver, esta ip no está en la lista de spam.
Pruébelo
Usted puede comprobar fácilmente utilizando el comando 'ping' comando.
si usted haría:
90.80.70.60.sbl.spamhaus.org ping, entonces hay dos opciones:
* Te 'host desconocido "mensaje. Esto está bien, el período de investigación no es la lista negra.
* Usted obtiene'127 .0.0. X, donde x> 1, al igual que 127.0.0.2. X representa un código de estado. En general, el 2 se utiliza para la (semi) permanentes netblocks, y 4 se utiliza para "proxies abiertos" (como: máquinas infectadas por un virus).
Ejemplo
i el uso de esta unidad con éxito en un cliente de correo.Lubos ha integrado con éxito esta unidad en un servidor SMTP/POP3 suite.
puede utilizar esta unidad, con o sin sinapsis tcp / ip de biblioteca mediante el establecimiento de la ($ DEFINE SYNAPSE) directiva.
spamchck.pas
unit spamchck;
interface
//Query's the spamhaus.org database of spammers
Clases de usos, SysUtils, ($ IFDEF SYNAPSE SynaUtil), ($ SynSock ELSE WinSock) ($ ENDIF); tipo
TSpamCheck = class (TObject)
protegidas
público
FDNSBL: String; / / DNS de bloques
constructor Create;
función IsSpammer (IP: String): Integer; sobrecarga;
función IsSpammer (MailHeader: TStrings): Integer; sobrecarga;
final;
aplicación
() TSpamCheck
TSpamCheck.Create constructor;
empezar
heredado;
FDNSBL: = 'SBL-xbl.spamhaus.org';
/ / Utilizar alternativamente sbl.spamhaus.org (spam) o
/ / Xbl.spamhaus.org (abierto relés, proxys)
/ / O una fuente alternativa DNSBL fuente.
/ / La SBL-XBL es la lista combinada.
final;
función TSpamCheck.IsSpammer (IP: String): Integer;
var RevIP: String;
i: Integer;
p: PHostEnt;
empezar
/ / Consulta de la base de datos
/ / En primer lugar, invertir la IP
Resultado: = -1;
($ IFDEF SYNAPSE)
si CIMI (IP) y luego
($ ENDIF)
empezar
/ / Invertir la propiedad intelectual
RevIP: ='';
for i: = 0 a 2 do
empezar
RevIP: = '. "Copiar + (IP, 1, pos ('.', IP) -1) + RevIP;
IP: = Copy (IP, pos ('.', de propiedad intelectual) +1, maxint);
final;
RevIP: = IP + RevIP;
/ / Ahora, consulta la base de datos:
RevIP: = RevIP + "." + FDNSBL;
p: = gethostbyname (PChar (RevIP));
si se ha asignado (p), entonces
begin / / Resultados volver como 127.0.0.x donde x> 1
/ / 127.0.0.2 = spam
/ / 127.0.0.4 = relé abierto etc
Resultado: byte = (p ^. H_addr ^. S_un_b.s_b4);
final
else / / no encontró la entrada DNS, que marca como seguro:
Resultado: = 0;
final;
final;
función TSpamCheck.IsSpammer (MailHeader: TStrings): Integer;
var v, ip: String;
i, r: Integer;
empezar
/ / Analizar un encabezado de correo electrónico
/ / Busca 'Recibido' de cabecera
/ / extracto de la dirección IP, en el supuesto de forma "Recibido: a partir de (ABCD) por (wxyz)
/ / Validar esta dirección IP en Spamhaus.
i: = 0;
Resultado: = -1;
mientras i <MailHeader.Count hacer
empezar
si pos ( 'recibido:', en minúsculas (MailHeader [i])) = 1 entonces
empezar
v: = MailHeader [i];
/ / búsqueda de cabeceras adicionales:
while ((i +1) <MailHeader.Count) y
(MailHeader [i +1 y ]<>'')
(MailHeader [i +1] [1] = '') hacer
empezar
inc (i);
v: = v + MailHeader [i];
final;
/ / v contiene ahora una línea, se encuentran desde la dirección IP:
v: = minúsculas (v);
/ / en busca de:
/ / Recibido: a partir de somehost.com (1.2.3.4).
v: copia = (V, pos ( 'de', v) +4, maxint);
v: copia = (V, pos ('(', v) +1, maxint);
v: = copia (v, 1, pos (')', V) -1);
si pos ('[', v)> 0 then
/ / formato válido es también:
/ / Recibido: a partir de somehost.com (somehost.com [1.2.3.4])
empezar
v: copia = (V, pos ('[', v) +1, maxint);
v: = copia (v, 1, pos (']', V) -1);
final;
Result: = IsSpammer (v);
/ / una sola línea recibida es suficiente
si Resultado> 0 then
break;
/ /
final;
inc (i);
final;
final;
final.

Delicious
Digg
Google
Yahoo