|< 1 2 >| | 14 Einträge, 2 Seiten |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#! /bin/bash
main() {
htmlhead "IP Tabelle"
tablehead
file2table ip xxx
tablefoot
htmlfoot
}
htmlhead() {
echo "<html><title>$1</title><body>"
}
htmlfoot() {
echo "</body></html>"
}
file2table() {
FILE=$1
HIGHLITE=$2
for LINE in $(cat $FILE.raw|tr " " "|"); do
HOST=`echo $LINE|cut -d "|" -f 2`
IP=`echo $LINE|cut -d "|" -f 3`
echo -n "<tr>"
if [ `echo $HOST|grep $HIGHLITE` ]; then
BA="<b>"; BE="</b>"
else
BA=""; BE=""
fi
echo -n "<td>$BA$HOST$BE</td><td>$BA$IP$BE</td>"
DESC=`cat $FILE.desc|grep $HOST|cut -f 2-`
if [ "$DESC" ]; then echo -n "<td>$BA$DESC$BE</td>"; fi
echo "</tr>"
done
}
tablehead() {
echo "<table>"
}
tablefoot() {
echo "</table>"
}
main
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
sub main { htmlhead ("IP Tabelle"); tablehead; file2table ("ip xxx"); tablefoot; htmlfoot; } sub htmlhead { print "<html><title>$1</title><body>\n"; } sub htmlfoot { print "</body></html>"; } sub file2table { } sub tablehead { print "<table>"; } sub tablefoot { print "</table>"; } main;
1 2 3 4 5
sub htmlhead { my $var = shift; print "<html><title>$var</title><body>\n"; }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
sub main
{
htmlhead("IP Tabelle");
tablehead();
file2table("ip xxx");
tablefoot();
htmlfoot();
}
sub htmlhead
{
my $var = shift;
print "<html><title>$var</title><body>\n";
}
sub htmlfoot
{
print "</body></html>\n";
}
sub file2table
{
}
sub tablehead
{
print "<table>\n";
}
sub tablefoot
{
print "</table>\n";
}
main;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
#!/usr/bin/perl use strict; use warnings; use CGI; use CGI::Carp qw(fatalsToBrowser warningsToBrowser); use HTML::Template; use Tie::File; #use Data::Dumper qw(Dumper); my $q = new CGI; my $file = shift @ARGV; my $mark = shift @ARGV; my $file_raw = $file.".raw"; my $file_desc = $file.".desc"; #print $q->header(), Dumper(&process_files()); print $q->header(), &fill_template(&process_files()); exit; sub process_files { my @file_raw; my @result_set; tie @file_raw, 'Tie::File', $file_raw or die "Can't tie to file $file_raw: $!\n"; @result_set = map { my (undef, $host, $ip ) = split(" ", $_); my $highlight = ($host =~ /$mark/g) ? 'mark' : undef; { host => $host, ip => $ip, highlight => $highlight, }; } @file_raw; return \@result_set; } sub fill_template { my $recordset = shift; my $template = HTML::Template->new( filename => "report.tmpl", die_on_bad_params => 0, ); $template->param( title => 'Entwurf V2.0', recordset => $recordset, ); return $template->output; }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<html>
<head>
<title><TMPL_VAR name="title"></title>
<style>
<!--
.mark { color: #f00; }
-->
</style>
</head>
<body>
<table>
<TMPL_LOOP name="recordset">
<tr class='<TMPL_VAR name="highlight">'>
<td><TMPL_VAR name="ip"></td>
<td><TMPL_VAR name="host"></td>
</tr>
</TMPL_LOOP>
</table>
</body>
</html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#!/usr/bin/perl
# Die folgenden beiden Zeilen sollten *immer* in einem Perl-Programm
# stehen, zumindest waehrend Entwicklung und Test. Damit wird man daran
# gehindert, unsichere Konstruktionen zu benutzen ('strict') und vor
# einigen moeglichen Fehlerquellen gewarnt ('warnings').
use strict;
use warnings;
htmlhead('IP Tabelle');
tablehead();
file2table('ip', '1');
tablefoot();
htmlfoot();
exit 0; # Programmende
########################################
# Hier kommen die Unterroutinen
########################################
sub htmlhead {
# Die Uebergabeparameter befinden sich im Array @_,
# das erste Element ist also $_[0]
print "<html>\n<title>$_[0]</title>\n<body>\n";
}
sub htmlfoot {
print "</body></html>\n";
}
sub file2table {
my ($file, $highlight) = @_;
# Alle Beschreibungen in den Hash %desc einlesen
my %desc;
open (DESC, '<', "$file.desc") or die "kann $file.desc nicht oeffnen: $!";
while (<DESC>) { # jede Zeile landet im Default-Parameter $_
chomp(); # Zeilenumbruch am Zeilenende entfernen
# teile am ersten Whitespace in 2 Teile
my ($h, $d) = split ' ', $_, 2;
# Schluessel ist der Host, Wert die Beschreibung
$desc{$h} = $d;
}
close DESC;
# IPs einlesen
open (RAW, '<', "$file.raw") or die "kann $file.raw nicht oeffnen: $!";
while (<RAW>) { # auch hier jede Zeile einzeln in $_
# automatisch an Whitespace teilen (alles hinter
# dem zweiten Whitespace wird ignoriert!)
my ($host, $ip) = split;
print '<tr>';
my ($ba, $be) = ('', '');
# wenn $highlight irgendwo in $host auftaucht, $ba und $be setzen.
# $highlight zaehlt dabei - wie bei grep - als Regex-Muster!
if ($host =~ /$highlight/) {
$ba = '<b>'; $be = '</b>';
}
# Zeile fuer Host ausgeben, evtl mit Beschreibung,
# wenn sie im Hash existiert, ansonsten mit festem Leerzeichen
print "<td>$ba$host$be</td><td>$ba$ip$be</td><td>$ba",
(exists $desc{$host} ? $desc{$host} : ' '),
"$be</td>";
print "</tr>\n";
}
close RAW;
}
sub tablehead {
print "<table>\n";
}
sub tablefoot {
print "</table>\n";
}
|< 1 2 >| | 14 Einträge, 2 Seiten |