On 7/27/06, Carl Lowenstein <[EMAIL PROTECTED]> wrote:
On 7/26/06, David Looney <[EMAIL PROTECTED]> wrote:
> Lan Barnes wrote:
> > Some time ago I asked about how to send myself email when Cox changes my
> > IP address. With help from the list, I came up with this, which works
> > through testing (but hasn't yet been tested by Cox).
> >
>
> [snip - script to connection to whatismyip.com & parse html response,
> compare with old IP, etc]
>
> What I do is to use traceroute to get my home router to cough up it's
> IP address (which is my external IP, of course), something like:
>
> #!/bin/sh
> # Old address saved in file
> oldip=`cat ~/.ipaddress`
> # Get your default routers inet address
> export inetip=`/usr/sbin/traceroute -n -m1 smtp.west.cox.net |
> /usr/bin/sed -e "/traceroute/d" | /usr/bin/awk '{print $2}'
> if ! [ $oldip -eq $inetip ] ; then
> echo $inetip > ~/.ipaddress
> echo "New IP address : "$inetip
> echo "IP changed - "$inetip | mail -s "New IP" [EMAIL PROTECTED]
> fi
>
> As always, YMMV. The advantage is that it doesn't rely on an external
> website or connectivity except to the router.
OK, how about this one:
Watch out for line breaks inserted by gmail: $ at the beginning of
this is a generic bash prompt. The 2 lines should not be split.
/nameserver/ is the gawk selector.
{print $2; exit} is the gawk action.
/etc/resolv.conf is the gawk argument.
I dont know how to break this to shorter lines to satisfy both gmail and bash.
$ /usr/sbin/traceroute -n -m1 2>/dev/null $(gawk '/nameserver/{print
$2; exit}' /etc/resolv.conf) | gawk '{print $2}'
This reads the IP address from the first line labeled "nameserver" in
/etc/resolv.conf, then does a traceroute to it. That way I don't have
to know the name of my nameserver. Of course this doesn't work if the
DHCP server in your home router believes that it too is a nameserver.
Works for me with RoadRunner and Netgear router and FC3.
Note that the 2>/dev/null does what /usr/bin/sed -e "/traceroute/d"
was intended to do in Dave Looney's script. But in fact that
undesired line from traceroute is sent to stderr not stdout.
carl
--
carl lowenstein marine physical lab u.c. san diego
[EMAIL PROTECTED]
--
carl lowenstein marine physical lab u.c. san diego
[EMAIL PROTECTED]
--
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-list