Archive for April, 2010
Compartir Internet de tu Linux a otros PC
Hoy les tengo una receta que es archi-conocida, pero que es fácil de olvidar y nunca está demás tenerla en un blog cercano.
La idea es compartir el internet de tu computador (con linux) a otro (con Windows, Linux, Mac, BSD, etc.), con la técnica del NATeo, que viene del término NAT (Network Address Translation).
Bueno, he hecho un pequeño script que hará la tarea más fácil, basta con copiar el siguiente texto a un archivo (por ejemplo: nat.sh)
#!/bin/bash echo 1 > /proc/sys/net/ipv4/ip_forward if [ "$#" -ne 2 ] then echo "usage: $0 [internal iface] [external iface]"; fi if [ "$#" -eq 2 ] then ifconfig $1 192.168.21.1 iptables -t nat -A POSTROUTING -o $2 -j MASQUERADE iptables -A FORWARD -i $2 -o $1 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -i $1 -o $2 -j ACCEPT fi
Luego, le das permisos de ejecución:
chmod +x nat.sh
Para ejecutarlo, en el caso de que tengas internet vÃa Wi-Fi (interfaz wlan0) y quieras compartirlo por cable (interfaz eth0) ejecutas lo siguiente:
./nat.sh eth0 wlan0
Otra cosa importante es que la interfaz que está conectada al otro computador (en este caso, eth0) tenga configurada una IP y máscara de subred, y que el otro computador tenga configurada una IP en el mismo segmento y el gateway sea la IP de tu interfaz eth0.
¿Muy complicado?  Ejemplo:
En el PC que tiene internet configuro la interfaz eth0:
ifconfig eth0 192.168.30.1 netmask 255.255.255.0
En el PC que va a usar el internet compartido, seteas una IP similar, estableces el gateway y configuras el resolv.conf, en este caso con el DNS server de Google:
ifconfig eth0 192.168.30.2 netmask 255.255.255.0 route add default gw 192.168.30.1 echo "nameserver 8.8.8.8" > /etc/resolv.conf
En Windows y Mac es básicamente similar, sólo que con el ratón, los datos que utilizarÃas son:
IP: 192.168.30.2 Máscara de Subred: 255.255.255.0 Puerta de Enlace: 192.168.30.1 Servidor DNS Primario: 8.8.8.8
Y deberÃa funcionar… ahora puedes compartir el internet que agarras del vecino tu internet con tu familia!
Disponibilidad de dominios .CL en Perl
Hace tiempo que no escribo algún artÃculo, al parecer Twitter es más fácil para redactar ideas a la rápida.
Hoy querÃa registrar un dominio en NIC Chile, y me di cuenta que está por vencer, de hecho en un mes aproximadamente deberÃa estar libre. Pero en realidad lo mas probable es que me olvide y no alcance a registrarlo cuando quede libre y otra persona me lo “gane”.
Por ésto es que decidà hacer un pequeño script que me ayudara a chequear de forma diaria (gracias a cron) si el dominio está disponible. La idea es que me envÃe un e-mail una vez el susodicho esté libre, pero esa parte aún no la hago y tampoco es la idea hacerlo junto, o sea, unix style ;).
El script en cuestión lo publico a continuación, bajo la licencia GPLv3, que puedes encontrar en http://www.gnu.org/licenses/gpl.html. Si quieres hacer uso comercial, contacta conmigo 😉
#!/usr/bin/perl # # Check if .CL domain is available or not. # Author: Jaime Oyarzun K. joyarzun {at} inf dot utfsm dot cl # Date: 20100418 # License: GPLv3 # # usage: ./whoisCL.pl [.cl] # # Output: # 0 when domain is not available # 1 when domain is available # # Crashes if connection cannot be established or no argument is given. # use IO::Socket; $sock = new IO::Socket::INET ( PeerAddr => 'whois.nic.cl', PeerPort => 43, Proto => 'tcp', ) or die "Connection error!"; if ($#ARGV<0) { die "Requires one argument: " }; $domain = $ARGV[0]; print $sock "$domain\n"; $exists = 1; while ($line = <$sock>) { chomp($line); if ($line =~ m/no existe/) { $exists = 0; print "1\n"; } } if ($exists) { print "0\n"; } close($sock);
Espero que a alguien le sirva, quedo atento a los comentarios. Saludos!
Mito.