Re: a night with an IP

From: Joshua Lauer (jslauer@hotmail.com)
Date: Sun Apr 09 2006 - 12:46:08 GMT-3


Thanks for posting this script, looks cool to me.
ideally you'll could set up the script to run via a
cron job..That way you dont have to manually run the
script all the time, just fire and forget.

What I do here (my ip address is assigned via dhcp)
is subcribe to the dyndns.com custom dns service. I
just registered a domain name and then installed a
dyndns client on one of my machines internally. The
client polls to see if the public IP has changed and
then updates Dyndns if it has. You can access
everything by using the registered domain name. I
use this for accessing my equipment at home, beats
having to remember an ip address and prevents the
frustration of having your isp change it while your
on the road somewhere :)

    jl

Joshua Lauer

CCIE#16024
CCNA, CCDA, CCNP, CCDP, CCSP, CCIP, RHCE, INFOSEC,
CISSP, CEH

----- Original Message -----
From: "Tim Fletcher" <tim@fletchmail.net>
To: "Victor Cappuccio" <cvictor@protokolgroup.com>
Cc: <ccie_lab@inetiq.com>; "'CCIE LAB'"
<ccielab@groupstudy.com>
Sent: Sunday, April 09, 2006 9:12 AM
Subject: Re: a night with an IP

> Victor,
>
> Here's a perl script I wrote that uses SNMP. The
> 1st time you run it, it gets your IP address and
> stores it in a file. Each time you run it after
> that, it checks the current IP against the cached
> one. If it's different, it sends out an e-mail.
>
> You'll need 2 perl modules; Net::SNMP and
> Mail::Send. Try running the script 1st. If it says
> it can't find one of these modules, you can
> install them using cpan. Log in as root, and from
> the command line enter "cpan". It may ask you a
> bunch of setup questions. Once you get to the
> "cpan>" prompt, enter "install Net::SNMP". Once
> that completes, do the same thing for Mail::Send,
> then enter "q" to quit. Once you have the script
> working, put in /etc/cron.hourly.
>
> -Tim Fletcher
>
> #!/usr/bin/perl -w
>
> use strict;
> use Net::SNMP;
> use Mail::Send;
>
> # the IP address that you use to connect to your
> gateway
> my $host = '<IPaddr>';
>
> # the name of your external interface such as
> "Ethernet0/0"
> my $interface = 'PIX Firewall \'outside\'
> interface';
>
> # your SNMP community string
> my $community = '<community>';
>
> # who the mail will be sent to
> my $rcpt = '<recipient>';
>
> # the from address of the mail
> my $mail = '<sender>';
>
> # a writable file to store the current IP address
> my $cache_file = '/tmp/ext_ip_addr';
>
> my $ifDescr = '.1.3.6.1.2.1.2.2.1.2';
> my $ipAdEntIfIndex = '.1.3.6.1.2.1.4.20.1.2.';
>
> my ($sess,
> $err,
> $fh,
> $int_list,
> $int_idx,
> $msg,
> $new_addr,
> $old_addr,
> %int_name,
> %int_ip_addr,
> );
>
> $\ = "\n";
>
> # read cach file it it exists
> if (open (CF, $cache_file)) {
> chomp ($old_addr = <CF>);
> close CF;
> }
>
> # open SNMP session
> ($sess, $err) = Net::SNMP->session(Hostname =>
> $host,
> Community =>
> $community);
> die "session error: $err\n" unless defined $sess;
>
> # get the list of interfaces
> $int_list = $sess->get_table(Baseoid => $ifDescr);
> unless (defined $int_list) {
> $err = $sess->error;
> die "get_table error: $err\n";
> }
>
> # find the interface index using the interface
> name
> foreach (keys %$int_list) {
> # get the last field of the OID
> my $idx_num = (split (/\./, $_))[11];
>
> # $int_name{<index number>} = <interface name>
> $int_name{$idx_num} = $int_list->{$_};
>
> $int_idx = $idx_num if $int_list->{$_} eq
> $interface;
> }
>
> # make sure we matched the interface name
> die "$0: could not find interface named:
> $interface" unless defined $int_idx;
>
> # find the address using the interface index
> $int_list = $sess->get_table(Baseoid =>
> $ipAdEntIfIndex);
>
> unless (defined $int_list) {
> $err = $sess->error;
> die "get_table error: $err\n";
> }
>
> # extract the ip address from the OID using the
> index
> foreach (keys %$int_list) {
> my $addr = join ('.', (split (/\./, $_))[11 ..
> 14]);
> $int_ip_addr{$_} = $addr;
> $new_addr = $addr if $int_list->{$_} eq $int_idx;
> }
>
> $sess->close;
>
> # update cache file
> open (CF, ">" . $cache_file)
> || die "error opening $cache_file
> for writing: $?\n";
> print CF $new_addr;
> close CF || die "error closing $cache_file: $?\n";
>
> # if there was no previous cache file, exit now
> exit unless defined $old_addr;
>
> # if the address hasn't changed, exit now
> exit if ($old_addr eq $new_addr);
>
> # if we're runnning interactively, print results
> if (-t STDOUT) {
> print "Old address: $old_addr";
> print "New address: $new_addr";
> }
>
> # send e-mail
> $msg = new Mail::Send;
> $msg->to($rcpt);
> $msg->add('From', $mail);
> $msg->subject('IP address change');
>
> $fh = $msg->open;
> print $fh "Public IP address has changed";
> print $fh "Old address: $old_addr";
> print $fh "New address: $new_addr";
> $fh->close;
>
>
> Victor Cappuccio wrote:
>> Wayne, THANKS :D
>> what Linux app could help me doing that??
>>
>>
>> CCIE KH49279 escribis:
>>> Victor,
>>>
>>> If you have a linux box on your internal
>>> network, you can have it poll the
>>> router and email the new IP when it changes. I
>>> am assuming you are using
>>> DHCP on the router. Perhaps you can setup
>>> logging??
>>>
>>> wayne
>>> -----Original Message-----
>>> From: nobody@groupstudy.com
>>> [mailto:nobody@groupstudy.com] On Behalf Of
>>> Victor Cappuccio
>>> Sent: Sunday, April 09, 2006 1:48 AM
>>> To: Magmax
>>> Cc: CCIE LAB
>>> Subject: Re: a night with an IP
>>>
>>> Ubaid, I do not get your question...
>>>
>>> I'm located in Venezuela
>>> But from the link you gave me, I'm located in
>>> this IP Address :D :D :D :D
>>>
>>> You appear to be located in United States [City:
>>> Caracas, Distrito
>>> Federal], based on your IP address of
>>> 1xx.2xx.63.3 (see our geolocation
>>> FAQ for details). FAQ, media information,
>>> linking, automated usage and
>>> more can be found at the FAQ page. Comments?
>>> Suggestions for new
>>> features? Problems? Want DNS advice? Please use
>>> the DNSstuff.com Forums.
>>>
>>> When did Venezuela became part of the US :D
>>> That are good new, since I would not need a Visa
>>> to get in :D
>>>
>>> Now my question is, is there any Cisco Method to
>>> know what IP Address my
>>> TS has and send like an TRAP to an email?
>>>
>>> Magmax escribis:
>>>
>>> Can you tell me where are you and how are you
>>> sending this email and where
>>> is your rack?
>>> Ubaid
>>>
>>> -----Original Message-----
>>> From: nobody@groupstudy.com [
>>> mailto:nobody@groupstudy.com ] On
>>> Behalf Of
>>> Victor Cappuccio
>>> Sent: Sunday, 9 April 2006 4:32 PM
>>> To: Magmax
>>> Cc: 'CCIE LAB'
>>> Subject: Re: a night with an IP
>>> Thanks Magmax, but I do not know my current
>>> RACK IP Address... :(
>>>
>>> Magmax escribis:
>>>
>>> You can try using Mirc or visit this website
>>> to find your current ip
>>>
>>> address
>>>
>>> http://www.dnsstuff.com/ -----Original
>>> Message-----
>>> From: nobody@groupstudy.com [
>>> mailto:nobody@groupstudy.com
>>> ] On Behalf Of
>>> Victor Cappuccio
>>> Sent: Sunday, 9 April 2006 4:16 PM
>>> To: CCIE LAB
>>> Subject: a night with an IP Hello
>>> all
>>> I have a little Lab with n Routers
>>> connected to a Terminal Server, and the
>>> Terminal Server connected directly to the
>>> Internet, who constantly changes the IP
>>> Address by a remote process in the ISP
>>> Now is there any way to know what IP
>>> Address this poor's men rack have now? Maybe
>>> something like sending an Email to the Admin (me
>>> :D) or any other method that could be nice
>>> to know what IP Address I have now?
>>> ISP Told me that they do not give up
>>> that information, so I must wait until
>>> Monday to play with my routers :(
>>> Thanks
>>> Victor.
>>>
>>> _______________________________________________________________________
>>> Subscription information may be found at:
>>> http://www.groupstudy.com/list/CCIELab.html
>>> _______________________________________________________________________
>>> Subscription information may be found at:
>>> http://www.groupstudy.com/list/CCIELab.html
>>> _______________________________________________________________________
>>> Subscription information may be found at:
>>> http://www.groupstudy.com/list/CCIELab.html
>>
>> _______________________________________________________________________
>> Subscription information may be found at:
>> http://www.groupstudy.com/list/CCIELab.html
>
> _______________________________________________________________________
> Subscription information may be found at:
> http://www.groupstudy.com/list/CCIELab.html



This archive was generated by hypermail 2.1.4 : Mon May 01 2006 - 11:41:56 GMT-3