#!/usr/bin/perl # # PoC Script to go out on the net to the IBM POD site and tally up activations for a given i or p Series machine # Chris-R rutherfc@gmail.com # v1.0 9/9/2011 # v2 1/4/2020 update for perl 5 no subsciprts starting at 1 and changes to www-912.ibm.com/pod/pod # # todo - add logic for processor deactivation - who uses that? IBM dont even publish the code on the pod site ;) # perhaps start with the manchies base config from IBM # use LWP::UserAgent; $ua = LWP::UserAgent->new; $ua->agent("mozilla 8.0"); # $ua->proxy(['http'], 'http://proxy:8080/'); $ua->timeout(10); use HTTP::Request::Common qw(POST); if ($#ARGV != 2) { print "usage: $0 MODEL XX XXXXX e.g $0 9119 83 9f6bf\n"; exit; } ($model, $serial1, $serial2) = @ARGV; ##### main ##### get('http://www-912.ibm.com/pod/pod',"$serial2.htm"); html2txt("$serial2.htm","$serial2.txt"); total("$serial2.txt"); exit; sub get # fakes a mozilla browser, fills in the CGI form and snags the returned page to a local html file { my $req = (POST $_[0], ["system_type" => $model, "system_serial_number1" => $serial1, "system_serial_number2" => $serial2 ]); $request = $ua->request($req); $activations = $request->content; open(POD,">$_[1]"); print POD $activations; close(POD); } sub html2txt # strips out the crap and converts the table to a local txt file to parse { open(HTML,"<$_[0]"); open(TXT,">$_[1]"); while () { if (/<\/table>/) {$f = 0;}; if (/