#!/usr/bin/perl #Blakes ING Direct get my acount information perl script. #Use at your own risk, everything is done over SSL and cookies are only for this session (not saved to disk) #This is pretty much taylored for my account summary page, so it may not work for you. #Questions/comments: me@blakecrosby.com #We are going to need some nice info from you so that we can get your account balance! $accountnum = '000000'; #your account number $accountpass = '00000'; #your pin number #load libwwwperl use HTML::TokeParser; use LWP::UserAgent; use Crypt::SSLeay; $ua = LWP::UserAgent->new; $ua->agent('Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)'); #need cookie support; use HTTP::Cookies; $ua->cookie_jar(HTTP::Cookies->new(file => "lwpcookies.txt", autosave => 1)); #sweeet we have that special magic number :) now lets do stuff wwith it. Log in! $req = HTTP::Request->new(POST => 'https://secure.ingdirect.ca/InitialINGDirect.html'); $req->content_type('application/x-www-form-urlencoded'); $req->content("command=login&locale=en_CA&device=web&ACN=$accountnum&PIN=$accountpass&GO.x=18&GO.y=7"); $res = $ua->request($req); if ($res->is_success) { } else { print "Error: " . $res->status_line . "\n"; } $req = HTTP::Request->new(GET => 'https://secure.ingdirect.ca/INGDirect.html?command=displayAccountSummary'); $req->header('Accept' => 'text/html'); # send request $res = $ua->request($req); $stream = HTML::TokeParser->new( \$res->content ) or die $!; #$stream->get_tag("table"); $tag = $stream->get_tag("tr"); $tag = $stream->get_tag("tr"); $tag = $stream->get_tag("tr"); $tag = $stream->get_tag("tr"); $tag = $stream->get_tag("tr"); $tag = $stream->get_tag("tr"); $tag = $stream->get_tag("tr"); $tag = $stream->get_tag("tr"); $tag = $stream->get_tag("tr"); $tag = $stream->get_tag("tr"); $tag = $stream->get_tag("tr"); #if ($tag->[1]{color} eq '#003366' and $tag->[1]{face} eq 'arial') { $stream->get_tag("td"); $stream->get_tag("td"); $stream->get_tag("td"); $stream->get_tag("td"); $stream->get_tag("td"); $stream->get_tag("td"); $stream->get_tag("td"); $balance = $stream->get_trimmed_text('/td'); #} while ( $tag = $stream->get_tag("tr")) { # if ($tag->[1]{color} eq '#003366' and $tag->[1]{face} eq 'arial') { $stream->get_tag("td"); $stream->get_tag("td"); # $balance = $stream->get_trimmed_text('/td'); $stream->get_tag("td"); $stream->get_tag("td"); $stream->get_tag("td"); $rsp = $stream->get_trimmed_text('/td'); # } } print "Your Account Balance: \$$balance\n"; #log out gracefully :) $req = HTTP::Request->new(GET => 'https://secure.ingdirect.ca/InitialINGDirect.html?command=displayLogout&device=web&locale=en_CA'); $req->header('Accept' => 'text/html'); # send request $res = $ua->request($req);