Código

Programa que lee correo electrónico usando el protocolo POP3

El siguiente programa nos muestra de una manera sencilla. como funciona el protocolo pop3, usando autenticación por contraseña.
Lo único que tiene que ser modificado en el siguiente programa son las variables: dirección IP del servidor POP3, usuario y contraseña.
como se muestra a continuación:

….
#define SRV_ADDR “200.x.x.x”
….

char origen[50];
char destino[50];
char msg_ready_srv[]=”<";
char *timestamp;
char *user_pop= "miusuario@midominio";
char *pass_pop="mipassword";
....

Bajar el programa Aquí

Para mayor información consultar:

http://www.ietf.org/rfc/rfc1939.txt

http://www.ietf.org/rfc/rfc1734.txt

Script para saber si ha Cambiado la IP Pública de mi ADSL

El siguiente Script, nos es útil, si tenemos un servidor de aplicaciones domésticas y nos encontramos en una red agena a la nuestra, es necesario saber que IP Pública tiene nuestro modém ADSL para poder accesar a nuestras aplicaciones. Lógicamente necesitamos que este script sea ejecutado rutinariamente a nuestra conveniencia, lo cual recomendamos algo así como un cron (caso *nix).

#!/usr/bin/perl -w

use LWP::Simple;
use HTML::TokeParser;
use Regexp::Common;
use Sys::Hostname;
use Mail::Mailer;

$mailadmin = “admin\@dominio.com”; #correo de nuestra preferencia donde se desea recibir la información
$hostname = hostname();
$url = “http://192.168.1.254/xslt?PAGE=B01&THISPAGE=&NEXTPAGE=B01″; #la url Absoluta de donde nos muestra el modem los datos
$path = “prodigytest.txt”; #nombre de archivo para vaciar datos de la url

unless (defined($contenido = get($url))){ #obtenemos los datos de la url
die “No se puede obtener $url”;
}

open(FH, “>”, $path) or die “No se puede abrir el archivo $path : $!\n”; #Se abre el archivo y escribe en el los datos
print FH $contenido;
close(FH);

my $range = qr/^ #Espresion Reguar por Dietz
(
(?: # first 3 octets:
(?: 2(?:5[0-5]|[0-4][0-9])\. ) # 200 – 255
| # or
(?: 1[0-9][0-9]\. ) # 100 – 199
| # or
(?: (?:[1-9][0-9]?|[0-9])\. ) # 0 – 99
)
{3} # above: three times

(?: # 4th octet:
(?: 2(?:5[0-5]|[0-4][0-9]) ) # 200 – 255
| # or
(?: 1[0-9][0-9] ) # 100 – 199
| # or
(?: [1-9][0-9]?|[0-9] ) # 0 – 99
)

$)
/x;

#Se realiza el parser para obtener solo los datos que nos interesan
my $parser = HTML::TokeParser->new($path) or die “No se puede abrir: $path $!”;
while (my $token = $parser->get_tag(“td”)){

my $url = $parser->get_trimmed_text(“/td”);
if ($url =~ m{^$RE{num}{int}{-sep=>’.'}{-group=>3}}){
if ($url =~ /$range/){
$ip = $url;
}
}

}

unlink($path) or die “No se puede eliminar $path: $!\n”;

#Es enviado el correo con los datos deseados
$from_address = “name\@localhost”;
$to_address = $mailadmin;
$subject = “IP Publica”;
$body = “Datos del servidor:\n\nIP: $ip\nDominio: $hostname\nFin del mensaje\n”;

$mailer = Mail::Mailer->new(“sendmail”);
$mailer->open({ From => $from_address,
To => $to_address,
Subject => $subject,
})
or die “Can’t open: $!\n”;
print $mailer $body;
$mailer->close( );

#script por Eliseo Ortiz, para fines didacticos.

generic viagra levitra and cialis pills! Buy Penis Growth Pack Online can i take viagra
viagra how it works Buy Cialis Super Active Online herbal viagra forums,
snorting viagra health Buy Viagra Soft Tabs Online viagra patent levitra?
viagra anxiety Buy Tramadol Online taking viagra woman

Administrando Sistema I

A continuación un simple código bash que nos permite realizar respaldos de ficheros en systemas unix/linux a través de cd-rom, la mecánnica es la siguiente:

1. Checa la existencia del fichero

2. Analiza que no sobrepase el tamaño del cd-rom

3. Grabar la información en el cd-rom

#!/bin/sh

fichero=directoriopararespaldar

if [ -e $fichero ]; then

result=$(du -s $fichero | cut -f 1)

if [ $result -gt 700000000 ];then
#echo “El directorio $fichero pesa mas de 256 bytes”
exit
else
mkisofs -r -R -J

Capturando paquetes con Libpcap -parte II-

El siguiente programa es un tipo sencillo de sniffer, utilizando libreria libpcap y netinet. Este programa nos muestra las cabeceras Ethernet, TCP, IP, ya sea todas o las que le especifiquemos, además de mostrarnos datos capturados por nuestra interfaz en modo “promiscuo”.

Código del sniffer