genservices.pl0000755000076400007640000001063210264440643014510 0ustar pihhanpihhan00000000000000#!/usr/bin/perl # # Cte ze stdin DEU a generuje z nich html stranku # Autor: Petr Mensik # use strict; my (@parameters); my %record; my %services; my %options; my $image_prefix = "icons/"; my $image_suffix = "png"; my $services_prefix = "/var/www/czfree/services/"; my $image_systemprefix = "$services_prefix"; my $all_list = $services_prefix."index.html"; sub check_icon { my ($fileh,$svcname) = @_; my $webfile = "$image_prefix$svcname.$image_suffix"; my $file = "$image_systemprefix$webfile"; open(EXTRA, "< $file") || return 1; close(EXTRA); print $fileh "\"$svcname\""; return 0; # } else { # print STDERR "nepodarilo se $svcname\n"; return 1; # } } sub service_header { my ($svcname) = @_; open( SVC, "> $services_prefix$svcname.html") || return 1; print SVC " Seznam poskytovatelů služby $svcname

Poskytovatelé služby $svcname v síti CzFree.net

"; close(SVC); } sub service_footer { my ($svcname) = @_; open( SVC, ">> $services_prefix$svcname.html") || return 1; print SVC "

Nalezených služeb tohoto typu: $services{$svcname}

"; } # z jednoho deu udelej jeden HTML sub makeone { my ($file) = @_; if (!$file) { $file = $all_list; } open (SVC, ">> $file") || die "Nelze pridat zaznam do $file: $_"; print SVC "
\n"; print SVC "

\n"; if ($record{TYP}) { check_icon(\*SVC, $record{TYP}); } print SVC " $record{NAZEV}

\n"; print SVC "

"; print SVC "[$record{IDPOLOZKY}] "; print SVC " $record{TYP} "; if ($record{URL}) { print SVC "[dns] "; } if ($record{URLIP}) { print SVC "[ip-only] "; } if ($record{URLINET}) { print SVC "[internet] "; } if ($record{PRIVATNI}) { print SVC "(privátní) "; } print SVC "

\n"; print SVC "

$record{POPIS}

\n"; # print " #
typ
$record{TYP}
# "; if ($record{OBLASTI}) { print SVC "
oblasti
$record{OBLASTI}
"; } if ($record{IP}) { print SVC "
hostname
$record{HOST}
"; } if ($record{IP}) { print SVC "
IP
$record{IP}
"; } if ($record{KONTAKT}) { my $kontakt = $record{KONTAKT}; print SVC "
kontakt
$record{KONTAKT}
"; } if ($record{ORIGIN}) { print SVC "
původ
$record{ORIGIN}
"; } if ($record{ALT}) { print SVC "
alternativní
$record{ALT}
"; } print SVC "
"; close(SVC); } #getopts("", \%options ); open(SVC, "> $all_list"); print SVC " Seznam služeb z CZF4BFU listu

Seznam všech nalezených služeb

"; close(SVC); foreach my $file (@ARGV) { open(DEU, "< $file") || die("Chyba otevirani $file"); print "Processing $file\n"; while () { chomp; # pokus o ostraneni dosoveho CR $_ =~ s/\r$//; if (/^\s*$/ && $record{TYP}) { # prazdny radek, oddelovac # pokud nenacteme aspon prvni TYP, nedelame nic. # ochrana proti vice prazdnym radkum $record{FILE}= $file; $record{ORIGIN} = $file; $record{ORIGIN} =~ s/.*global-(\d+\.\d+\.\d+\.\d+).txt$/\1/; makeone($all_list,\%record); my $typ = $record{TYP}; if (!$services{$typ}) { print "New service $typ\n"; service_header($typ); $services{$typ} = 0; } makeone("$services_prefix$typ.html"); $services{$typ}++; %record = (); } elsif (/^([A-Zi]+):\s*(.*)\s{0,1}$/) { # jelikoz se zda, ze prvni zaznam ma prioritu pred nasledujicimi, budu pro # jednoduchost mit jenom prvni zaznam tak, ze ty dalsi ignoruju $record{$1} = $2 unless ($record{$1}); # print "dbg: $1 $2 $record{URL}\n"; } else { print STDERR "Nepodporovany radek $_\n."; } } # while close(DEU); } # foreach open (SVC, ">> $all_list") || die "Nelze pridat do $all_list"; print SVC " "; foreach my $typ (keys %services) { service_footer($typ); } close(SVC); get-http.sh0000755000076400007640000000471710264767640013746 0ustar pihhanpihhan00000000000000#!/bin/sh # stahovatko czf4bfu souboru ze serveru podle zadanych zdroju # pokousi se i o rekurzivni pristup a stahnuti jinak nedostupnych # baliku # sources je soubor s IP na jednom radku SOURCES="${1:-$HOME/czf4bfu/zdroje.txt}" # domeny ve kterych budu hledat czf4bfu host, jeho IP pouziju. DOMENY="${2:-$HOME/czf4bfu/domeny.txt}" # parametry pro wget DSTDIR="/var/www/czf4bfu" # parametry wgetu. # -N zapina overovani posledni modifikace, bohuzel dost serveru # to nepodporuje nebo nema zapnute. Pripadne vypnout a nahradit # -nc, coz zajisti pri kazdem pokusu prepsani stareho WGETPARAMS="-r -l 0 -N -np -nd -t 3 -A '.txt,.deu' -P $DSTDIR" TMPFILE="/tmp/getall-czf-$RANDOM" HOST=host function getbyip() { IP=$1 # prvni zkusim soubor primo z tou IP. # momentalne nutne u czela.czf if wget $WGETPARAMS "http://$IP/czf4bfu/global-$IP.txt"; then # pokud probehlo uspesne stazeni hlavniho souboru, zkus stahnout # i pripadne dalsi soubory # potom zkusim rekuznivne nalezt pripadne sousedy, o kterych # on vi a ja ne, a stahnu taky jejich data wget $WGETPARAMS "http://$IP/czf4bfu/" fi } # vrati na stdout IP podle A zaznamu. # predany parametr je domena function getdnsip() { DOMAIN=$1 # Potom prihodim seznamy dle A recordu $HOST $DOMAIN | sed \ -e "/has address/ ! d" \ -e "s/^.*has address \([[:digit:].]\+\)[[:space:]]*$/\1/" } function getsrvip() { # Ziskani pomoci SRV zaznamu # trosku komplikace je, ze SRV vraci zaznam hostname, ne IP, takze jeste # jednou resolve. DOMAIN=$1 host -t SRV _http._tcp.czf4bfu.$DOMAIN | sed \ -e "/SRV [[:digit:]]\+ [[:digit:]]\+ [[:digit:]]\+/ ! d" \ -e "s/^.*SRV [[:digit:]]\+ [[:digit:]]\+ [[:digit:]]\+ \([[:alnum:].-]\+\)[[:space:]]*$/\1/" | \ while read HOSTNAME; do getdnsip $HOSTNAME done } echo -n > "$TMPFILE" # Jako prvni zkus najit zdroje v defaultni domene # Pozor. Pokud nebude fungovat timestamp, je lepsi dat svuj lokalni # DEU soubor jako read-only pro toho kdo spousti tento skript, jinak by # mohl prepsat deu soubor pro tento stroj. getdnsip czf4bfu >> "$TMPFILE" # Napred zkusime hledani podle domen zadanych v souboru [ -f "$DOMENY" ] && cat "$DOMENY" | while read DOMAIN; do getsrvip $DOMAIN >> "$TMPFILE" # Potom prihodim seznamy dle A recordu getdnsip czf4bfu.$DOMAIN >> "$TMPFILE" done # ted pridam do seznamu rucne zadane IP cat "$SOURCES" >> "$TMPFILE" # seradim a vyhazu duplikaty IPS=$(cat "$TMPFILE" | sort -u ) echo "Nalezene IP: $IPS" # a ted uz jenom stahnu for IP in $IPS; do getbyip $IP done get-rsync.sh0000755000076400007640000000446310264767553014126 0ustar pihhanpihhan00000000000000#!/bin/sh # stahovatko czf4bfu souboru ze serveru podle zadanych zdroju # pokousi se i o rekurzivni pristup a stahnuti jinak nedostupnych # baliku # sources je soubor s IP na jednom radku SOURCES="${1:-$HOME/czf4bfu/zdroje.txt}" # domeny ve kterych budu hledat czf4bfu host, jeho IP pouziju. DOMENY="${2:-$HOME/czf4bfu/domeny.txt}" # parametry pro wget DSTDIR="/var/www/czf4bfu" # parametry wgetu. # -N zapina overovani posledni modifikace, bohuzel dost serveru # to nepodporuje nebo nema zapnute. Pripadne vypnout a nahradit # -nc, coz zajisti pri kazdem pokusu prepsani stareho WGETPARAMS="-r -l 0 -N -np -nd -t 3 -A '.txt,.deu' -P $DSTDIR" TMPFILE="/tmp/getall-czf-$RANDOM" HOST=host RSYNC=rsync RSYNCPARAMS="-r " SERVICE="rsync" function getbyip() { IP=$1 # prvni zkusim soubor primo z tou IP. # momentalne nutne u czela.czf $RSYNC $RSYNCPARAMS rsync://$IP/czf4bfu "$DSTDIR" } function getdnsip() { DOMAIN=$1 # Potom prihodim seznamy dle A recordu # je nutne pridat czf4bfu v parametru $HOST $DOMAIN | sed \ -e "/has address/ ! d" \ -e "s/^.*has address \([[:digit:].]\+\)[[:space:]]*$/\1/" } function getsrvip() { # Ziskani pomoci SRV zaznamu # trosku komplikace je, ze SRV vraci zaznam hostname, ne IP, takze jeste # jednou resolve. DOMAIN=$1 host -t SRV _$SERVICE._tcp.czf4bfu.$DOMAIN | sed \ -e "/SRV [[:digit:]]\+ [[:digit:]]\+ [[:digit:]]\+/ ! d" \ -e "s/^.*SRV [[:digit:]]\+ [[:digit:]]\+ [[:digit:]]\+ \([[:alnum:].-]\+\)[[:space:]]*$/\1/" | \ while read HOSTNAME; do getdnsip $HOSTNAME done } echo -n > "$TMPFILE" # Jako prvni zkus najit zdroje v defaultni domene # Pozor. Pokud nebude fungovat timestamp, je lepsi dat svuj lokalni # DEU soubor jako read-only pro toho kdo spousti tento skript, jinak by # mohl prepsat deu soubor pro tento stroj. getdnsip czf4bfu >> $TMPFILE # Napred zkusime hledani podle domen zadanych v souboru [ -f "$DOMENY" ] && cat "$DOMENY" | while read DOMAIN; do echo "Domena: $DOMAIN" getsrvip $DOMAIN >> "$TMPFILE" # Potom prihodim seznamy dle A recordu # jenom SRV zatim # getdnsip czf4bfu.$DOMAIN >> "$TMPFILE" done # ted pridam do seznamu rucne zadane IP # rsync budu delat z SRV jenom #cat "$SOURCES" >> "$TMPFILE" # seradim a vyhazu duplikaty IPS=$(cat "$TMPFILE" | sort -u ) echo "Nalezene IP:" echo "$IPS" # a ted uz jenom stahnu for IP in $IPS; do getbyip $IP done update.sh0000755000076400007640000000065610264762517013470 0ustar pihhanpihhan00000000000000#!/bin/sh GETALL="$HOME/czf4bfu/get-http.sh" GENSERVICES="$HOME/czf4bfu/genservices.pl" RESOURCEPREFIX="/var/www/czf4bfu" # pokud je pritomna -g, nejdriv stahni aktualizovane zdroje if [ "$1" = "-g" ]; then shift $GETALL fi #for FILE in global-*.*.*.*.txt; do # echo "$FILE" # BASENAME=$(basename "$FILE" .txt) # ./genservices.pl > "$BASENAME.html" #done echo "all-in-one" $GENSERVICES "$RESOURCEPREFIX"/global-*.*.*.*.txt zdroje.txt0000644000076400007640000000010210264442524013660 0ustar pihhanpihhan0000000000000010.14.1.1 10.10.1.1 10.24.23.150 10.40.0.2 10.129.0.26 10.93.0.1 domeny.txt0000644000076400007640000000005110264443126013660 0ustar pihhanpihhan00000000000000jspoj.czf czela.czf brno.czf tisnov.czf WebSVN - czf4bfu.prosek.czf - Blame - Rev 1 - /zal/czf4bfu-2005-07-12.tar
  jablonka.czprosek.czf

czf4bfu.prosek.czf

Subversion Repositories:
[/] [zal/] [czf4bfu-2005-07-12.tar] - Blame information for rev 1

 

Line No. Rev Author Line

Powered by WebSVN 2.2.1