Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Comment on

( #3333=superdoc: print w/ replies, xml ) Need Help??
Hi Ken,

After reading through and doing some homework, I added on to your code to do pretty much what I needed and it works :) . I have finetuned a few things based on my requirements. Here is my code. I might have used a longer way to do things and maybe there are shortcuts to do it. But I would like you to check my code and let me know if what I have done is ok or any enhancements/ improvements can be done.

Even if I have done mistakes ,I am quite happy I learnt quite a lot

#!/usr/bin/env perl -l use strict; use warnings; use Time::Local; use JSON; use Time::Piece; my $poll_hour = 1; my $poll_minute = 20; my $data = decode_json join '' => map { chomp; $_ } (<DATA>); use Text::Table; my $tb = Text::Table->new( "Date", "", "Start Time", "End Time", "Time Taken" , "Egress:I +ngress" , "AADATA" ); for (@{$data->{aaData}}) { my $difftime=(@$_[1] - @$_[0]); if (is_poll_time(@$_[0,1])) { # print "@$_"; @$_[0] = scalar(localtime(@$_[0])); @$_[1] = scalar(localtime(@$_[1])); my $day = substr(@$_[0],0,10); my $stime = substr(@$_[0],11,8); my $year = substr(@$_[0],20,4); my $etime = substr(@$_[1],11,8); #my @dateend = split(' ',@$_[1])); $tb->load( [ $day, $year, $stime , $etime ,convert_time($difftime) , @$_[ +8] , @$_[9] ], ); } } print $tb; sub is_poll_time { for ($poll_hour=1; $poll_hour<=24; $poll_hour++){ for (@_) { my $t = gmtime $_; return 1 if $t->hour == $poll_hour && $t->min == $poll_minute; } } return 0; } sub convert_time { my $time = shift; my $days = int($time / 86400); $time -= ($days * 86400); my $hours = int($time / 3600); $time -= ($hours * 3600); my $minutes = int($time / 60); my $seconds = $time % 60; $days = $days < 1 ? '' : $days .'d '; $hours = $hours < 1 ? '' : $hours .'h '; $minutes = $minutes < 1 ? '' : $minutes . ' min '; $time = $days . $hours . $minutes . $seconds . ' sec'; return $time; } __DATA__ {"iTotalDisplayRecords":"90","iTotalRecords":"90","sColumns":"startTim +e,endTime,remoteNode,srcIP,srcPort,destIP,destPort,egress,ingress","a +aData":[["1375856507","137 5858307","WAN","FF:80:D1","192.168.167.37",3649,"10.219.72.3",80,"0,20 +","149,186"],["1375856506","1375858307","WAN","FF:C3:77","192.168.167 +.28",3910,"10.219.72.3",80 ,"65536,65641","149,188"],["1375856505","1375858305","WAN","FF:C9:7D", +"192.168.167.9",1944,"10.219.72.3",80,"1935584,273470","150,264"],["1 +375856501","1375858301","W AN","FF:C2:DB","192.168.167.30",4606,"10.219.72.3",80,"1608068,1118911 +","132,189"],["1375856498","1375858298","WAN","FF:C5:4E","192.168.167 +.38",2611,"10.219.72.3",80 ,"920588,455833","150,193"],["1375856495","1375858295","WAN","FF:C7:90 +","192.168.167.16",2036,"10.219.72.3",80,"1755036,470171","147,185"], +["1375856494","1375858294" ,"WAN","FF:C1:FD","192.168.167.34",2118,"10.219.72.3",80,"633624,58520 +7","177,224"],["1375856491","1375858291","WAN","FF:C4:EF","192.168.16 +7.23",3875,"10.219.72.3",8 0,"2316316,1906209","132,191"],["1375856471","1375858271","WAN","FF:C6 +:67","192.168.167.5",4794,"10.219.72.3",80,"9765028,4016161","147,103 +4"],["1375856470","1375858 271","WAN","FF:CD:09","192.168.167.11",1707,"10.219.72.3",80,"2860552, +533884","168,199"],["1375856465","1375858265","WAN","FF:C7:E1","192.1 +68.167.15",2142,"10.219.72 .3",80,"6639576,1934965","147,185"],["1375856459","1375858260","WAN"," +FF:C2:99","192.168.167.31",4478,"10.219.72.3",80,"16729692,3831326"," +146,260"],["1375856445","1 375858246","WAN","FF:C6:CC","192.168.167.22",4674,"10.219.72.3",80,"42 +30804,3165895","147,691"],["1375856437","1375858237","WAN","FF:C9:F9" +,"192.168.167.4",4956,"10. 219.72.3",80,"9396960,1990474","147,185"],["1375856433","1375858234"," +WAN","FF:C9:A7","192.168.167.17",3899,"10.219.72.3",80,"9708088,78299 +78","147,9798"],["13758564 32","1375858232","WAN","FF:C8:23","192.168.167.2",3204,"10.219.72.3",8 +0,"12722744,8198182","147,308"],["1375856432","1375858232","WAN","FF: +C3:EA","192.168.167.27",44 49,"10.219.72.3",80,"8621880,8641627","146,240"],["1375856412","137585 +8213","WAN","FF:C7:E8","192.168.167.13",1319,"10.219.72.3",80,"119101 +96,11969965","147,1460"],[ "1375856370","1375858170","WAN","FF:CA:4E","192.168.167.14",3123,"10.2 +19.72.3",80,"12963152,5276668","147,665"],["1375856504","1375857704", +"WAN","FF:F8:7C","192.168. 167.57",65011,"10.219.72.3",53517,"1642500,308139","0,16"],["137585649 +5","1375857695","WAN","FF:F8:0D","192.168.167.56",63669,"10.219.72.3" +,80,"4042956,1150040","177 ,207"],["1375856485","1375857685","WAN","FF:F8:7C","192.168.167.57",65 +005,"10.219.72.3",80,"1546748,821480","177,208"],["1375856495","13758 +57510","WAN","FF:C8:A2","1 92.168.167.19",2598,"10.219.72.3",80,"4138988,1346531","168,319"],["13 +75856488","1375857499","WAN","FF:C9:25","192.168.167.10",1159,"10.219 +.72.3",80,"4595712,3295110 ","147,730"],["1375856497","1375857481","WAN","FF:C7:65","192.168.167. +20",4464,"10.219.72.3",80,"4903764,1402164","168,267"],["1375856497", +"1375857476","WAN","FF:C5: B6","192.168.167.21",1802,"10.219.72.3",80,"4182311,1138853","150,741" +],["1375856502","1375857475","WAN","FF:F8:48","192.168.167.59",51847, +"10.219.72.3",53511,"26126 00,394743","0,16"],["1375856497","1375857474","WAN","FF:83:4D","192.16 +8.167.26",4174,"10.219.72.3",80,"2752512,763324","167,215"],["1375856 +502","1375857474","WAN","F F:F8:48","192.168.167.59",51844,"10.219.72.3",80,"566384,201703","146, +185"],["1375856474","1375857472","WAN","FF:C8:81","192.168.167.18",10 +78,"10.219.72.3",80,"33669 12,696540","168,294"],["1375856504","1375857453","WAN","FF:C3:54","192 +.168.167.29",1846,"10.219.72.3",80,"1241616,696810","177,209"],["1375 +856503","1375856508","WAN" ,"FF:CD:4A","192.168.167.7",1400,"10.219.72.3",80,"2389792,167571","13 +6,203"],["1375856490","1375856507","WAN","FF:CE:56","192.168.167.3",2 +011,"10.219.72.3",80,"4182 311,850324","150,183"],["1375856498","1375856506","WAN","FF:CA:6B","19 +2.168.167.12",1981,"10.219.72.3",80,"2699046,1124066","133,756"],["13 +75856501","1375856506","WA N","FF:C6:E3","192.168.167.6",3140,"10.219.72.3",80,"2257178,494035"," +133,174"],["1375856470","1375856505","WAN","FF:C3:77","192.168.167.28 +",3879,"10.219.72.3",80,"4 161362,4123838","177,242"],["1375856503","1375856505","WAN","FF:F8:0D" +,"192.168.167.56",63674,"10.219.72.3",53514,"4563776,798503","0,20"], +["1375856491","1375856503" ,"WAN","FF:F8:7C","192.168.167.57",65008,"10.219.72.3",53475,"4563776, +642254","0,20"],["1375856502","1375856502","WAN","FF:F8:48","192.168. +167.59",51842,"10.219.72.3 ",80,"1429,824","132,175"],["1375856497","1375856502","WAN","FF:F8:48" +,"192.168.167.59",51840,"10.219.72.3",53496,"5338624,714602","0,20"], +["1375856480","1375856501" ,"WAN","FF:C3:54","192.168.167.29",1828,"10.219.72.3",80,"6128421,3193 +443","167,198"],["1375856490","1375856501","WAN","FF:F8:48","192.168. +167.59",51831,"10.219.72.3 ",80,"2389792,212440","135,175"],["1375856488","1375856501","WAN","FF: +C9:7D","192.168.167.9",1941,"10.219.72.3",80,"4161362,674756","178,24 +0"],["1375856477","1375856 500","WAN","FF:CD:4A","192.168.167.7",1390,"10.219.72.3",80,"2699046,4 +45565","133,204"],["1375856481","1375856500","WAN","FF:C6:E3","192.16 +8.167.6",3136,"10.219.72.3 ",80,"4182311,1278644","150,185"],["1375856487","1375856499","WAN","FF +:C2:DB","192.168.167.30",4604,"10.219.72.3",80,"2834057,1749320","132 +,197"],["1375856466","1375 856498","WAN","FF:C5:4E","192.168.167.38",2577,"10.219.72.3",80,"41613 +62,1507534","178,232"],["1375856485","1375856497","WAN","FF:CA:6B","1 +92.168.167.12",1977,"10.21 9.72.3",80,"2834057,1171220","133,304"],["1375856495","1375856496","WA +N","FF:F8:48","192.168.167.59",51837,"10.219.72.3",53490,"2384896,222 +035","0,20"],["1375856408" ,"1375856496","WAN","FF:83:4D","192.168.167.26",4108,"10.219.72.3",80, +"17796913,7366167","146,331"],["1375856494","1375856496","WAN","FF:F8 +:0D","192.168.167.56",6366 7,"10.219.72.3",53486,"5338624,1082762","0,20"],["1375856484","1375856 +495","WAN","FF:C5:B6","192.168.167.21",1799,"10.219.72.3",80,"4161362 +,1316715","178,554"],["137 5856483","1375856494","WAN","FF:F8:0D","192.168.167.56",63656,"10.219. +72.3",80,"6128421,2735602","167,196"],["1375856493","1375856494","WAN +","FF:C7:90","192.168.167. 16",2034,"10.219.72.3",80,"1429,824","133,176"],["1375856434","1375856 +494","WAN","FF:C8:A2","192.168.167.19",2593,"10.219.72.3",80,"1779691 +3,5349326","147,912"],["13 75856440","1375856494","WAN","FF:C7:65","192.168.167.20",4461,"10.219. +72.3",80,"17796913,4219966","147,993"],["1375856489","1375856493","WA +N","FF:F8:0D","192.168.167 .56",63664,"10.219.72.3",53464,"2384896,226987","0,20"],["1375856472", +"1375856492","WAN","FF:C7:90","192.168.167.16",2031,"10.219.72.3",80, +"2389792,204182","136,176" ],["1375856379","1375856492","WAN","FF:C1:FD","192.168.167.34",2096,"1 +0.219.72.3",80,"6128421,4529607","167,197"],["1375856491","1375856491 +","WAN","FF:F8:48","192.16 8.167.59",51834,"10.219.72.3",53476,"0,4","0,4"],["1375856482","137585 +6491","WAN","FF:F8:48","192.168.167.59",51829,"10.219.72.3",53437,"22 +56896,427276","0,20"],["13 75856483","1375856491","WAN","FF:F8:7C","192.168.167.57",65003,"10.219 +.72.3",53441,"5338624,792304","0,20"],["1375856481","1375856490","WAN +","FF:F8:48","192.168.167. 59",51823,"10.219.72.3",80,"2699046,1067833","132,174"],["1375856484", +"1375856490","WAN","FF:C4:EF","192.168.167.23",3869,"10.219.72.3",80, +"2257178,1508892","132,198 "],["1375856489","1375856489","WAN","FF:F8:0D","192.168.167.56",63661, +"10.219.72.3",53462,"0,4","0,4"],["1375856487","1375856487","WAN","FF +:C9:25","192.168.167.10",1 157,"10.219.72.3",80,"1429,822","133,173"],["1375856467","1375856487", +"WAN","FF:CE:56","192.168.167.3",2006,"10.219.72.3",80,"4161362,96468 +8","178,209"],["1375856444 ","1375856486","WAN","FF:C9:7D","192.168.167.9",1938,"10.219.72.3",80, +"6128421,864904","168,340"],["1375856484","1375856485","WAN","FF:F8:0 +D","192.168.167.56",63658, "10.219.72.3",53443,"2256896,1039336","0,20"],["1375856468","137585648 +5","WAN","FF:C2:DB","192.168.167.30",4574,"10.219.72.3",80,"2257178,3 +18147","132,173"],["137585 6464","1375856484","WAN","FF:F8:7C","192.168.167.57",64968,"10.219.72. +3",80,"6128421,2522269","167,197"],["1375856463","1375856484","WAN"," +FF:CA:6B","192.168.167.12" ,1973,"10.219.72.3",80,"2257178,578070","133,1147"],["1375856471","137 +5856483","WAN","FF:C9:25","192.168.167.10",1154,"10.219.72.3",80,"238 +9792,287545","136,214"],[" 1375856364","1375856483","WAN","FF:F8:0D","192.168.167.56",63540,"10.2 +19.72.3",80,"17796913,10834116","146,183"],["1375856482","1375856483" +,"WAN","FF:F8:0D","192.168 .167.56",63653,"10.219.72.3",53436,"1032192,202992","0,20"],["13758564 +50","1375856483","WAN","FF:C4:EF","192.168.167.23",3859,"10.219.72.3" +,80,"4182311,2673002","149 ,249"],["1375856453","1375856483","WAN","FF:C5:B6","192.168.167.21",17 +96,"10.219.72.3",80,"6128421,1720678","168,701"],["1375856475","13758 +56482","WAN","FF:F8:7C","1 92.168.167.57",65000,"10.219.72.3",53398,"2384896,225894","0,20"],["13 +75856450","1375856482","WAN","FF:80:D1","192.168.167.37",3643,"10.219 +.72.3",80,"4161362,871817" ,"177,261"],["1375856481","1375856481","WAN","FF:F8:48","192.168.167.5 +9",51826,"10.219.72.3",53431,"1032192,166348","0,20"],["1375856480"," +1375856481","WAN","FF:F8:0 D","192.168.167.56",63650,"10.219.72.3",53430,"1628016,598969","0,20"] +,["1375856450","1375856481","WAN","FF:C6:E3","192.168.167.6",3132,"10 +.219.72.3",80,"4161362,102 6987","178,209"],["1375856480","1375856481","WAN","FF:F8:48","192.168. +167.59",51821,"10.219.72.3",53428,"1628016,300089","0,20"],["13758564 +51","1375856480","WAN","FF :F8:48","192.168.167.59",51785,"10.219.72.3",80,"2834057,889744","132, +175"],["1375856479","1375856480","WAN","FF:F8:0D","192.168.167.56",63 +647,"10.219.72.3",53427,"1 162752,96819","0,20"],["1375856479","1375856479","WAN","FF:F8:48","192 +.168.167.59",51818,"10.219.72.3",53426,"1162752,98143","0,20"],["1375 +856475","1375856479","WAN" ,"FF:F8:0D","192.168.167.56",63644,"10.219.72.3",53393,"4252672,107755 +7","0,20"],["1375856477","1375856479","WAN","FF:F8:48","192.168.167.5 +9",51815,"10.219.72.3",534 20,"4252672,618283","0,20"],["1375856401","1375856477","WAN","FF:C3:54 +","192.168.167.29",1786,"10.219.72.3",80,"17796913,3514777","146,185" +],["1375856475","137585647 7","WAN","FF:F8:48","192.168.167.59",51812,"10.219.72.3",53401,"456377 +6,834693","0,20"]]}

And the output:

Date Start Time End Time Time Taken Egress:Ingress AAD +ATA Tue Aug 6 2013 23:20:59 23:51:00 30 min 1 sec 16729692,3831326 146 +,260 Tue Aug 6 2013 23:20:45 23:50:46 30 min 1 sec 4230804,3165895 147 +,691 Tue Aug 6 2013 23:20:37 23:50:37 30 min 0 sec 9396960,1990474 147 +,185 Tue Aug 6 2013 23:20:33 23:50:34 30 min 1 sec 9708088,7829978 147 +,9798 Tue Aug 6 2013 23:20:32 23:50:32 30 min 0 sec 12722744,8198182 147 +,308 Tue Aug 6 2013 23:20:32 23:50:32 30 min 0 sec 8621880,8641627 146 +,240 Tue Aug 6 2013 23:20:12 23:50:13 30 min 1 sec 11910196,11969965 147 +,1460 Tue Aug 6 2013 23:20:08 23:21:36 1 min 28 sec 17796913,7366167 146 +,331 Tue Aug 6 2013 23:20:34 23:21:34 1 min 0 sec 17796913,5349326 147 +,912 Tue Aug 6 2013 23:20:40 23:21:34 54 sec 17796913,4219966 147 +,993 Tue Aug 6 2013 23:20:44 23:21:26 42 sec 6128421,864904 168 +,340 Tue Aug 6 2013 23:20:50 23:21:23 33 sec 4182311,2673002 149 +,249 Tue Aug 6 2013 23:20:53 23:21:23 30 sec 6128421,1720678 168 +,701 Tue Aug 6 2013 23:20:50 23:21:22 32 sec 4161362,871817 177 +,261 Tue Aug 6 2013 23:20:50 23:21:21 31 sec 4161362,1026987 178 +,209 Tue Aug 6 2013 23:20:51 23:21:20 29 sec 2834057,889744 132 +,175 Tue Aug 6 2013 23:20:01 23:21:17 1 min 16 sec 17796913,3514777 146 +,185

In reply to Re^4: Epoch based parser by spikeinc
in thread Epoch based parser by spikeinc

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • Outside of code tags, you may need to use entities for some characters:
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?
    Username:
    Password:

    What's my password?
    Create A New User
    Chatterbox?
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others browsing the Monastery: (5)
    As of 2014-12-27 10:40 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?

      Is guessing a good strategy for surviving in the IT business?





      Results (177 votes), past polls