<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>TheFox &#187; Perl</title>
	<atom:link href="http://fox21.at/tag/perl/feed" rel="self" type="application/rss+xml" />
	<link>http://fox21.at</link>
	<description>Just another Perl hacker.</description>
	<lastBuildDate>Sat, 04 Feb 2012 09:59:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>TwitterExporter 1.0.0</title>
		<link>http://fox21.at/twitterexporter-1-0-0.html</link>
		<comments>http://fox21.at/twitterexporter-1-0-0.html#comments</comments>
		<pubDate>Sun, 18 Apr 2010 14:23:08 +0000</pubDate>
		<dc:creator>TheFox</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[SocialNetwork]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://fox21.at/?p=2801</guid>
		<description><![CDATA[TwitterExporter exportiert alle Informationen aus dem eigenen Twitter Account. Alle Tweets, Favoriten, Mentions (@), Followers und Friends werden mit diesem Script in eine XML-Datei gespeichert. Es koennen auch mehrere Twitter Accounts angegeben werden. Bevor man loslegen kann, muss noch die &#8230; <a href="http://fox21.at/twitterexporter-1-0-0.html">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>TwitterExporter exportiert alle Informationen aus dem eigenen Twitter Account. Alle Tweets, Favoriten, Mentions (@), Followers und Friends werden mit diesem Script in eine XML-Datei gespeichert.</p>
<p><span id="more-2801"></span></p>
<p>Es koennen auch mehrere Twitter Accounts angegeben werden. Bevor man loslegen kann, muss noch die Variable <strong>%CONFIG</strong> angepasst werden. Wenn <strong>$DEBUG</strong> auf 1 (true) gestellt ist, werden nicht nur die Fehlermeldungen ausgegeben. Dieses Script ist vorallem als Linux-Cronjob gedacht. Laut <a target="_blank" href="http://apiwiki.twitter.com/Twitter-API-Documentation" target="_blank">Twitter API</a> kann man nur 150 Requests pro Stunde anfordern. Ich habe einen Cronjob eingerichtet, der nur einmal am Tag rennt. Sollte eigentlich reichen. Ausserdem muss darauf geachtet werden, dass das Script die Rechte 0700 (<tt>-rwx------</tt>) hat. Da die Passwoerter der Twitter Accounts ohne Verschluesselung im Script stehen, ist das unbedingt von Noeten.</p>
<p>Die Rechte des Scriptes aendert man wie folgt mit <tt>chmod</tt>:</p>
<pre>chmod 0700 twitterexporter.pl</pre>
<h2>Benoetigte Perl-Module</h2>
<ul>
<li>FindBin</li>
<li><a target="_blank" href="http://search.cpan.org/perldoc?DateTime" target="_blank">DateTime</a></li>
<li><a target="_blank" href="http://search.cpan.org/perldoc?XML::LibXML">XML::LibXML</a></li>
<li><a target="_blank" href="http://search.cpan.org/perldoc?Net::Twitter" target="_blank">Net::Twitter</a></li>
</ul>
<h2>Download</h2>
<ul>
<li><a target="_blank" href="http://software.fox21.at/twitterexporter/releases/twitterexporter-1.0.0.tar.gz" target="_blank">twitterexporter-1.0.0.tar.gz</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://fox21.at/twitterexporter-1-0-0.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MakeIndex 1.1.0</title>
		<link>http://fox21.at/makeindex-1-1-0.html</link>
		<comments>http://fox21.at/makeindex-1-1-0.html#comments</comments>
		<pubDate>Sun, 04 Apr 2010 12:01:57 +0000</pubDate>
		<dc:creator>TheFox</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Crontab]]></category>
		<category><![CDATA[HTTP]]></category>

		<guid isPermaLink="false">http://fox21.at/?p=2714</guid>
		<description><![CDATA[Ein paar Kleinigkeiten habe ich am MakeIndex ausgebessert und es gleich auf meine Homepage gestellt. Hier ein paar Erneuerungen. Fuer eine genauer Beschreibung bitte beim Artikel von Version 1.0.0 lesen. Die Variable $RECURSIVE wird ab jetzt auch verwendet. Bei der &#8230; <a href="http://fox21.at/makeindex-1-1-0.html">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ein paar Kleinigkeiten habe ich am <a target="_blank" href="/makeindex-1-0-0.html" target="_blank">MakeIndex</a> ausgebessert und es gleich auf meine Homepage gestellt.</p>
<p><span id="more-2714"></span></p>
<p>Hier ein paar Erneuerungen. Fuer eine genauer Beschreibung bitte beim <a target="_blank" href="/makeindex-1-0-0.html" target="_blank">Artikel von Version 1.0.0</a> lesen.</p>
<ul>
<li>Die Variable <strong>$RECURSIVE</strong> wird ab jetzt auch verwendet. Bei der <a target="_blank" href="/makeindex-1-0-0.html" target="_blank">Version 1.0.0</a> war diese Variable zwar auch schon enthalten, aber sie war sinnlos.</li>
<li>Die Variable <strong>@IGNORE</strong> ist jetzt bei Version 1.1.0 dazu gekommen. In diesem Array kann man alle Pfade eintragen, die das Script ignorieren soll.</li>
</ul>
<p>Wie immer gilt: <a target="_blank" href="/term" target="_blank"><strong>Benutzung auf eigene Gefahr</strong></a>. Da das Script kein eigenes Konfigurationsfile hat, ist es nicht schlecht, wenn man die alte Version umbenennt, da sonst die eingetragenen Pfade verloren gehen.</p>
<h2>Download</h2>
<ul>
<li><a target="_blank" href="http://software.fox21.at/makeindex/releases/makeindex-1.1.0.tar.gz" target="_blank">makeindex-1.1.0.tar.gz</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://fox21.at/makeindex-1-1-0.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MakeIndex 1.0.0</title>
		<link>http://fox21.at/makeindex-1-0-0.html</link>
		<comments>http://fox21.at/makeindex-1-0-0.html#comments</comments>
		<pubDate>Sun, 24 Jan 2010 10:19:58 +0000</pubDate>
		<dc:creator>TheFox</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Crontab]]></category>
		<category><![CDATA[HTTP]]></category>

		<guid isPermaLink="false">http://fox21.at/?p=2358</guid>
		<description><![CDATA[Es gibt kein Problem, dass man nicht mit Perl loesen koennte. Dieses Script erstellt in angegebenen Ordnern eine index.html mit einer Auflistung aller, jeweils in den Ordnern enthaltenen, Unterordnern und Dateien. Der Sinn und Zweck liegt darin, dass die index.html &#8230; <a href="http://fox21.at/makeindex-1-0-0.html">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Es gibt kein Problem, dass man nicht mit Perl loesen koennte. Dieses Script erstellt in angegebenen Ordnern eine index.html mit einer Auflistung aller, jeweils in den Ordnern enthaltenen, Unterordnern und Dateien.</p>
<p><span id="more-2358"></span></p>
<p>Der Sinn und Zweck liegt darin, dass die index.html von einem Script erzeugt wird und nicht vom HTTP-Prozess. Manche HTTP-Server, wie z. B. Apache, koennen auch Index Seiten ausliefern, falls es fuer einen Ordner kein Index-File gibt. Das kann jedoch zu einer hohen Prozessauslastung fuehren, da der Prozess mit dem Auslesen der Ordner-Informationen, wie z. B. Filegroessen und File-Aenderungszeiten, beschaeftigt ist. Vorallem wenn viele User ueber HTTP auf einen Ordner zugreifen, oder wenn viele Files in einem Ordner existieren, kann es zu einer hoeheren Auslastung des Prozesses kommen. Die Auslieferung eines statischem HTML-Files fuehrt im Normalfall nicht zu einer hohen Prozessauslastung.</p>
<h2><span style="color: #ff0000;">WICHTIGER HINWEIS</span></h2>
<p>Dieses Script ueberschreibt jede index.html. Das Ausfuehren des Script geschieht auf <a target="_blank" href="/term" target="_blank"><strong>eigene Gefahr</strong></a>.</p>
<h2>Konfiguration</h2>
<ul>
<li><strong>$DEBUG</strong> &#8211; Diese Variable, gibt Informationen im STDOUT aus, falls sie auf 1 (true) gesetzt ist. An den Index-Files aendert sich dadurch nichts.</li>
<li><strong>$RECURSIVE</strong> &#8211; Falls diese Variable auf 1 (true) gesetzt ist, werden in allen Unterordnern jeweils auch index.html Files erzeugt.</li>
<li><strong>$INTERVAL</strong> &#8211; Diese Variable dient nur zur Inforamtion. Sie sagt nichts darueber aus, wie oft ein Index-File wirklich erstellt wird. Es haengt von der Cronjob-Einstellung ab, wie oft die Index-Files erstellt werden.</li>
<li><strong>@INDIR</strong> &#8211; Dieses Array muss alle Pfade enthalten, in denen Index-Files erstellt werden sollen. Da das Array mit einer <strong>qw()</strong>-Anweisung erstellt wird, darf ein Pfad keine Leerzeichen enthalten. Die einzelnen Pfade koennen durch Leerzeichen, Tabulatoren oder durch neue Zeilen getrennt sein.</li>
<li><strong>@IGNORE</strong> &#8211; Dieses Array kann Pfade enthalten, die vom Script nicht beruecksichtigt werden.</li>
</ul>
<p>Ausserdem muss ein Cronjob eingerichtet werden, der das Script in einem bestimmten Intervall ausfuehrt. Ein Eintrag im <strong>crontab</strong> koennte wie folgt aussehen:</p>

<div class="wp_syntax"><div class="code"><pre class="crontab" style="font-family:monospace;">*/5 * * * * /home/USER/makeindex.pl</pre></div></div>

<h2>Benoetigte Perl-Module</h2>
<ul>
<li>File::Basename</li>
</ul>
<h2>Download</h2>
<ul>
<li><a target="_blank" href="http://software.fox21.at/makeindex/releases/makeindex-1.1.0.tar.gz" target="_blank">makeindex-1.1.0.tar.gz</a></li>
<li><a target="_blank" href="http://software.fox21.at/makeindex/releases/makeindex-1.0.0.tar.gz" target="_blank"><del datetime="2010-04-04T11:42:07+00:00">makeindex-1.0.0.tar.gz</del></a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://fox21.at/makeindex-1-0-0.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Files Backup 1.0.0</title>
		<link>http://fox21.at/files-backup-1-0-0-linux-rsync.html</link>
		<comments>http://fox21.at/files-backup-1-0-0-linux-rsync.html#comments</comments>
		<pubDate>Sat, 23 Jan 2010 18:10:51 +0000</pubDate>
		<dc:creator>TheFox</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[Backup]]></category>

		<guid isPermaLink="false">http://fox21.at/?p=2305</guid>
		<description><![CDATA[Es gibt kein Problem, dass man nicht mit Perl loesen koennte. Diesen Satz habe ich schon lange nicht mehr geschrieben. Das erste Software-Release in diesem Jahr. Hier ist also wieder einmal ein Perl-Script von mir. Es funktioniert aber nur mit &#8230; <a href="http://fox21.at/files-backup-1-0-0-linux-rsync.html">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Es gibt kein Problem, dass man nicht mit Perl loesen koennte. Diesen Satz habe ich schon lange nicht mehr geschrieben. Das erste Software-Release in diesem Jahr. Hier ist also wieder einmal ein Perl-Script von mir. Es funktioniert aber nur mit Linux. Ausser man installiert sich auf Windows auch <a target="_blank" href="http://rsync.samba.org/" target="_blank">rsync</a>.</p>
<p><span id="more-2305"></span></p>
<p>Das Linux Programm rsync eignet sich perfekt um Backups von Dateien zu machen. Dieses Script verwendet rsync aber offline. Das heisst, es werden die Files auf eine USB-Festplatte oder eine andere eingebaute Festplatte kopiert. Es geht darum, wenn die Festplatte einen Schaden hat, dass immer noch ein Backup vorhanden ist. Das ist eigentlich der schlimmste Fall, der eintreten kann. Man kann mit diesem Script also <strong>nicht</strong> verschiedene Versionen eines Files herstellen, sondern immer nur das letzte Backup. Professionell ausgedrueckt erstellt dieses Script ein <strong>inkrementelles Backup</strong>. Beim erstmaligen Start wird eine Volldatensicherung gemacht. Danach eine  inkrementelle Datensicherung. Mit ein paar kleinen Aenderungen kann dieses Script jedoch auch fuers Netzwerk verwendet werden.</p>
<h2>Verwendete rsync-Einstellungen</h2>
<ul>
<li>-r: <strong>Rekursiv</strong> alle Ordner und Unterordner kopieren.</li>
<li>-R: <strong>Relative Pfade</strong>. Diese Option bewirkt, dass die gleichen Pfade beim Ziel verwendet werden. Zum Beispiel: Der Ordner /etc/init.d wird in der Datei mkbak.files.txt eingetragen, damit von diesem auch ein Backup erstell wird. Das Backup wird auf einer Festplatte gespeichert, die unter /mnt/backup gemountet ist. Der Ordner /etc/init.d wird also nach /mnt/backup/etc/init.d kopiert. So funktioniert es nicht nur mit Ordnern sondern auch mit Files.</li>
<li>-l: <strong>Symbolische Links</strong> werden auch kopiert.</li>
<li>-p: Die <strong>Rechte</strong> werden am Ziel vom Original fuer Ordner und Files uebernommen.</li>
<li>-o: Der <strong>Besitzer</strong> wird am Ziel vom Original fuer Ordner und Files uebernommen. Erfordert, dass rsync mit root ausgefuehrt wird.</li>
<li>-g: Die <strong>Gruppe</strong> wird am Ziel vom Original fuer Ordner und Files uebernommen. Erfordert, dass rsync mit root ausgefuehrt wird.</li>
<li>-t: Die <strong>Aenderungszeit</strong> wird am Ziel vom Original fuer Ordner und Files uebernommen.</li>
</ul>
<h2>Benoetigte Perl-Module</h2>
<ul>
<li><a target="_blank" href="http://search.cpan.org/perldoc?FindBin" target="_blank">FindBin</a></li>
</ul>
<h2>Installation</h2>
<ol>
<li>Download

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">wget http://software.fox21.at/mkbakfiles/releases/mkbak.files-1.0.0-linux.tar.gz</pre></div></div>

</li>
<li>Entzippen

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">gzip -d mkbak.files-1.0.0-linux.tar.gz</pre></div></div>

</li>
<li>Entpacken

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">tar -xvf mkbak.files-1.0.0-linux.tar</pre></div></div>

</li>
<li>Konfigurieren. Alle Files und Ordner, die gesichert werden sollen, muessen im File <strong>mkbak.files.txt</strong> eingetragen werden. Ein File oder einen Ordner <strong>pro Zeile</strong>. Jede leere Zeile und jede Zeile die mit einem # (Raute-Zeichen) anfangen, werden ignoriert.
<pre># comment
/home/thefox/
/etc
/usr/local/bin</pre>
</li>
</ol>
<h2>Download</h2>
<ul>
<li><a target="_blank" href="http://software.fox21.at/mkbakfiles/releases/mkbak.files-1.0.0-linux.tar.gz" target="_blank">mkbak.files-1.0.0-linux.tar.gz</a></li>
</ul>
<h2>Weblinks</h2>
<ul>
<li><a target="_blank" href="http://www.pcwissen.eu/sicherungskonzepte.html" target="_blank">Datensicherungskonzepte</a></li>
<li><a target="_blank" href="http://www.foerderland.de/2274.0.html" target="_blank">Moeglichkeiten der Datensicherung</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://fox21.at/files-backup-1-0-0-linux-rsync.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TheFox auf Twitter</title>
		<link>http://fox21.at/twitter.html</link>
		<comments>http://fox21.at/twitter.html#comments</comments>
		<pubDate>Sun, 22 Nov 2009 13:23:21 +0000</pubDate>
		<dc:creator>TheFox</dc:creator>
				<category><![CDATA[Sonstiges]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[RSS]]></category>
		<category><![CDATA[SocialNetwork]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://fox21.at/?p=1419</guid>
		<description><![CDATA[Wie vielleicht einige schon bemerkt haben, bin ich jetzt auch bei Twitter. Registriert hab&#8217; ich mich zwar schon Mitte Jaenner dieses Jahres, aber ich hab&#8217; nie wirklich etwas getwitter. Ich bin nicht unbedingt der Typ, der sich bei jedem Scheissdreck &#8230; <a href="http://fox21.at/twitter.html">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a target="_blank" href="http://twitter.com/TheFox21"><img class="alignleft" src="http://img.fox21.at/twitter/twitter2.png" alt="" width="100" height="36" /></a>Wie vielleicht einige schon bemerkt haben, bin ich jetzt auch bei Twitter. Registriert hab&#8217; ich mich zwar schon Mitte Jaenner dieses Jahres, aber ich hab&#8217; nie wirklich etwas <em>getwitter</em>.</p>
<p><span id="more-1419"></span></p>
<p>Ich bin nicht unbedingt der Typ, der sich bei jedem <del datetime="2009-11-21T21:26:56+00:00">Scheissdreck</del> <a target="_blank" href="http://en.wikipedia.org/wiki/Social_network_service" target="_blank">Social Network Service</a> registiert. Vorallem finde ich Facebook ueberfluessig. Aber Twitter ist anders. Man wird nicht mit so viel unnoetigen Informationen wie bei Facebook ueberflutet. Man liest nur das, was man auch fuer wichtig haelt. Immer in kleinen Happen fuer zwischendurch. Ganz unverbindlich. Bei Twitter muss man nicht unbedingt mit jemanden &#8220;befreundet&#8221; sein, um Aktivietaeten einer Person zu verfolgen. Es gibt auch ein cooles Perl Modul namens <a target="_blank" href="http://search.cpan.org/perldoc?Net::Twitter" target="_blank">Net::Twitter</a>, das ich in Zusammenhang mit <a target="_blank" href="http://search.cpan.org/perldoc?XML::Feed" target="_blank">XML::Feed</a> verwende. Software-Releases von (u. a.) Gentoo Linux, <a target="_blank" href="http://www.php.net/" target="_blank">PHP</a>, <a target="_blank" href="http://winscp.net/" target="_blank">WinSCP</a>, <a target="_blank" href="http://www.openoffice.org/" target="_blank">OpenOffice</a>, <a target="_blank" href="http://smplayer.sourceforge.net/" target="_blank">SMPlayer</a> oder WordPress werden dann sofort mit meinem Twitter Account getwittert.</p>
<p>In diesem Sinne &#8211; <a target="_blank" href="http://twitter.com/TheFox21" target="_blank">follow me</a>.</p>
<h2>Twitter Statistiken</h2>
<ul>
<li><a target="_blank" href="http://www.twitteranalyzer.com/ms.aspx?userId=thefox21" target="_blank">Twitter Analyzer</a></li>
<li><a target="_blank" href="http://tweetstats.com/graphs/TheFox21" target="_blank">TweetStats</a></li>
<li><a target="_blank" href="http://twittercounter.com/TheFox21" target="_blank">TwitterCounter</a></li>
<li><a target="_blank" href="http://www.tweet-rank.de/?username=TheFox21" target="_blank">Tweet Rank</a></li>
<li><a target="_blank" href="http://twitterholic.com/TheFox21" target="_blank">Twitterholic</a></li>
</ul>
<h2>Weblinks</h2>
<ul>
<li><a target="_blank" href="http://www.marketingyp.com/social-media/twitter-as-a-tool-for-marketing-your-business.html" target="_blank">Twitter as a Tool for Marketing Your Business</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://fox21.at/twitter.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>DDL-Warez.org Links 2.0.0 &#8211; Flash Captchas</title>
		<link>http://fox21.at/ddl-warezorg-links-200-flash-captchas.html</link>
		<comments>http://fox21.at/ddl-warezorg-links-200-flash-captchas.html#comments</comments>
		<pubDate>Wed, 29 Apr 2009 21:30:21 +0000</pubDate>
		<dc:creator>TheFox</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[CAPTCHA]]></category>
		<category><![CDATA[CGI]]></category>
		<category><![CDATA[DDL-Warez]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[RapidShare]]></category>

		<guid isPermaLink="false">http://fox21.at/?p=1012</guid>
		<description><![CDATA[Nachdem ddl-warez.org gestern/vorgestern auf sichere Flashcaptchas umgesattelt hatte, musste auch ich mein DDL-Warez.org Links-Script anpassen. Jeder denkt sicher, dass diese Captchas, noch dazu in Flash, unumgaenglich seien. Dem ist aber nicht so. Das Flashcaptcha (z. B. http://www.ddl-warez.org/getcaptcha.php?id=abcd), beinhaltet einen dynamischen &#8230; <a href="http://fox21.at/ddl-warezorg-links-200-flash-captchas.html">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Nachdem <a target="_blank" href="http://www.ddl-warez.org/" target="_blank">ddl-warez.org</a> gestern/vorgestern auf <em>sichere</em> Flashcaptchas umgesattelt hatte, musste auch ich mein <a target="_blank" href="/ddl-warezorg-links-100.html" target="_blank">DDL-Warez.org Links</a>-Script anpassen.</p>
<p><span id="more-1012"></span></p>
<p>Jeder denkt sicher, dass diese Captchas, noch dazu in Flash, unumgaenglich seien. Dem ist aber nicht so. Das Flashcaptcha (z. B. <a target="_blank" href="http://www.ddl-warez.org/getcaptcha.php?id=abcd" target="_blank">http://www.ddl-warez.org/getcaptcha.php?id=abcd</a>), beinhaltet einen dynamischen Teil. Es muss ja schliesslich bei jedem Aufruf ein anderes Captcha angezeigt werden. In dieser SWF-Datei stehen die Captchas, nicht wie anfangs angenommen verschluesselt, sondern unverschluesselt am Ende dieser Datei. Sogar in HTML-Format: <strong><em>&lt;p align=&#8221;center&#8221;&gt;&lt;font face=&#8221;Berlin Sans FB Demi&#8221; size=&#8221;60&#8243; color=&#8221;#e8edf0&#8243; letterSpacing=&#8221;0.000000&#8243; kerning=&#8221;1&#8243;&gt;1234&lt;/font&gt;&lt;/p&gt;</em></strong>. In dem Fall waere der Captcha-Code <em>1234</em>. Dadurch kann man die Eingabe der Captchas simulieren. Etwas, das man nicht simulieren kann, ist die Wartezeit nach der Captchaeingabe. Natuerlich muss auch mein Script diese Zeit verstreichen lassen, bis es weiter arbeiten kann. Desswegen rennt das Script <strong>mindestens</strong> 5 Sekunden oder laenger. Man darf sich also nicht wundern, wenn es etwas laenger braucht, um die RapidShare-Links zu bekommen. Aber immerhin ist es noch schneller, als wenn jeder Link haendisch kopiert werden muss. Es war ein ganzes Stueck Arbeit, um es so weit zu bringen, dass das Script die Captchabilder auslesen kann.</p>
<p><a target="_blank" href="/ddl-warezorg-links-100.html" target="_blank">Installationsanleitung</a></p>
<h2><strong>Download</strong></h2>
<ul>
<li><a target="_blank" href="http://software.fox21.at/ddllinks/releases/ddllinks-2.0.0.zip" target="_blank"><del datetime="2009-05-01T15:56:14+00:00">ddllinks-2.0.0.zip</del></a></li>
<li><a target="_blank" href="/ddl-warezorg-links-100.html" target="_blank">aeltere Versionen</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://fox21.at/ddl-warezorg-links-200-flash-captchas.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>DDL-Warez.org Links 1.4.0</title>
		<link>http://fox21.at/ddl-warezorg-links-140.html</link>
		<comments>http://fox21.at/ddl-warezorg-links-140.html#comments</comments>
		<pubDate>Thu, 23 Apr 2009 19:39:13 +0000</pubDate>
		<dc:creator>TheFox</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[CAPTCHA]]></category>
		<category><![CDATA[CGI]]></category>
		<category><![CDATA[DDL-Warez]]></category>
		<category><![CDATA[RapidShare]]></category>

		<guid isPermaLink="false">http://fox21.at/?p=990</guid>
		<description><![CDATA[Warum bin ich nicht schon viel frueher auf diese Idee gekommen? Im DDL-Warez.org Links-Script wird das Captcha-Wort nicht mehr dynamisch aus der HTML-Seite ausgelesen, sondern von http://software.fox21.at/ddllinks/captcha.txt. Damit kann ich das Wort aendern und muss nicht jedes Mal eine neue &#8230; <a href="http://fox21.at/ddl-warezorg-links-140.html">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Warum bin ich nicht schon viel frueher auf diese Idee gekommen? Im <a target="_blank" href="/ddl-warezorg-links-100.html" target="_blank">DDL-Warez.org Links</a>-Script wird das Captcha-Wort nicht mehr dynamisch aus der HTML-Seite ausgelesen, sondern von <a target="_blank" href="http://software.fox21.at/ddllinks/captcha.txt" target="_blank">http://software.fox21.at/ddllinks/captcha.txt</a>. Damit kann ich das Wort aendern und muss nicht jedes Mal eine neue Version dieses Scripts uploaden. Ausserdem muss man sich nicht jedes Mal mein neues Script herunterladen, nur weil sich das Wort aendert.</p>
<p><a target="_blank" href="/ddl-warezorg-links-100.html" target="_blank">Installationsanleitung</a></p>
<h2><strong>Download</strong></h2>
<ul>
<li><a target="_blank" href="/ddl-warezorg-links-100.html" target="_blank">hier</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://fox21.at/ddl-warezorg-links-140.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>pwait 1.0.0</title>
		<link>http://fox21.at/pwait-100.html</link>
		<comments>http://fox21.at/pwait-100.html#comments</comments>
		<pubDate>Fri, 10 Apr 2009 10:12:00 +0000</pubDate>
		<dc:creator>TheFox</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[Prozess]]></category>

		<guid isPermaLink="false">http://fox21.at/?p=906</guid>
		<description><![CDATA[Es gibt kein Problem, das man nicht mit Perl loesen koennte. pwait ist ein Perl Script, das auf einen anderen Prozess wartet und dann selber einen weiteren Prozess startet. Ich hab&#8217; mich schon oft geaergert, nachdem ich ein Shell Script &#8230; <a href="http://fox21.at/pwait-100.html">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Es gibt kein Problem, das man nicht mit Perl loesen koennte. pwait ist ein Perl Script, das auf einen anderen Prozess wartet und dann selber einen weiteren Prozess startet.</p>
<p><span id="more-906"></span></p>
<p>Ich hab&#8217; mich schon oft geaergert, nachdem ich ein Shell Script oder ein Programm gestartet hatte und wollte, dass, nachdem es alles abgearbeitet hatte, noch weitere Aktionen ausfuehrt. Desswegen entschloss ich mich dazu, diese Script zu schreiben. Es wird dem Script eine Prozess ID und ein Pfad zu einem weiteren Programm uebergeben, das danach gestartet wird. pwait wartet solange bis der Prozess beendet wurde und startet anschliessend ein anderes Programm. Es koennen natuerlich auch mehrere Prozess IDs und Programmpfade uebergeben werden. In dem Fall wartet das Perl Script so lange, bis alle Prozesse, deren IDs uebergeben worden sind, beendet wurden. Um einem Programm, das gestartet werden soll, auch Argumente zu uebergeben, muss dieses sammt den Argumenten unter Hochkomma (&#8220;&#8221;) gestellt werden.</p>
<p>In diesem Beispiel wartet pwait bis der Prozess mit der ID <strong>1234</strong> beendet wurde und startet anschliessend den Befehl &#8220;sleep 10&#8243;.</p>
<pre>./pwait.pl 1234 "sleep 10"</pre>
<h2><strong>Benoetigte Perl-Module</strong></h2>
<ul>
<li>Win32::Process</li>
<li>Win32::Process::List</li>
</ul>
<h2><strong>Download</strong></h2>
<ul>
<li><a target="_blank" href="http://software.fox21.at/pwait/releases/pwait-1.0.0.zip">pwait-1.0.0.zip</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://fox21.at/pwait-100.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>dlc2txt 1.0.0</title>
		<link>http://fox21.at/dlc2txt-100.html</link>
		<comments>http://fox21.at/dlc2txt-100.html#comments</comments>
		<pubDate>Thu, 09 Apr 2009 17:27:36 +0000</pubDate>
		<dc:creator>TheFox</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[DLC]]></category>
		<category><![CDATA[JDownloader]]></category>
		<category><![CDATA[One-Click-Hoster]]></category>
		<category><![CDATA[RapidShare]]></category>

		<guid isPermaLink="false">http://fox21.at/?p=889</guid>
		<description><![CDATA[Es gibt kein Problem, das man nicht mit Perl loesen koennte. dlc2txt ist ein Perl Script, mit dem man Dateien, die die Endung .dlc haben, entschluesseln kann. DLC ist ein Containerformat, das von JDownloader verwendet wird. JDownloader ist ein Java-Programm, &#8230; <a href="http://fox21.at/dlc2txt-100.html">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Es gibt kein Problem, das man nicht mit Perl loesen koennte. <a target="_blank" href="http://software.fox21.at/dlc2txt/releases/dlc2txt-1.0.0.zip" target="_blank">dlc2txt</a> ist ein Perl Script, mit dem man Dateien, die die Endung <strong>.dlc</strong> haben, entschluesseln kann.</p>
<p><span id="more-889"></span></p>
<p>DLC ist ein Containerformat, das von <a target="_blank" href="http://www.jdownloader.org/" target="_blank">JDownloader</a> verwendet wird. JDownloader ist ein Java-Programm, mit dem von <a target="_blank" href="http://www.rapidshare.com" target="_blank">rapidshare.com</a>, <a target="_blank" href="http://www.megaupload.com" target="_blank">megaupload.com</a>, <a target="_blank" href="http://www.uploaded.to" target="_blank">uploaded.to</a> oder anderen bekannten One-Click-Hostern herunter geladen werden kann. Da man <strong>2 private Keys</strong> benoetigt, um .dlc-Files zu entschluesseln, muss ich hier eines klar stellen: <strong>DIESES SCRIPT ENTHAELT KEINE KEYS!</strong> Das heisst es ist <strong>unbrauchbar</strong>, solange man nicht selber 2 Keys besitzt. Falls doch, traegt man diese in den Variablen <strong>$KEYA</strong> und <strong>$KEYB</strong> ein. Es gibt noch eine dritte wichtige Variable bei der ganzen Sache: <strong>$PROGNAME</strong>, ist ein String, der beim Aufruf von <strong>http://service.jdownloader.org/dlcrypt/service.php?destType={$PROGNAME}</strong> benoetigt wird. In dem Fall wird <em>{$PROGNAME}</em> durch den String ersetzt, der in der Variable $PROGNAME steht. Alle Programme (z. B. <a target="_blank" href="http://board.gulli.com/thread/1337027-msd-0655-alpha---rsdf-dlc-ccfycjauto-unpacker/" target="_blank">MSD</a>, <a target="_blank" href="http://board.gulli.com/thread/950280-load-v048---decrypt-rsdf-ccf-neue-hoster-entpackfunktion/" target="_blank">Load!</a>, &#8230;), die DLC Files entschluesseln koennen, verwenden jeweils fuer destType einen eigenen String.</p>
<p>Ich will jetzt nicht genauer auf den Container eingehen, da ich mich leider viel zu wenig mit <a target="_blank" href="http://de.wikipedia.org/wiki/Kryptographie" target="_blank">Kryptographie</a> auskenne. Weitere Infromationen ueber DLC findet man in Eddys Blog (<a target="_blank" href="http://41yd.de/blog/2008/11/15/dlc-geknackt/" target="_blank">http://41yd.de/blog/2008/11/15/dlc-geknackt/</a>). Danke nochmals an dieser Stelle.</p>
<h2><strong>Benoetigte Perl-Module</strong></h2>
<ul>
<li>Cwd</li>
<li>LWP::Simple</li>
<li>MIME::Base64</li>
<li>Crypt::Rijndael</li>
<li>File::Basename</li>
</ul>
<h2><strong>Download</strong></h2>
<ul>
<li><a target="_blank" href="http://github.com/TheFox/dlc2txt" target="_blank">dlc2txt 1.1.0</a></li>
<li><a target="_blank" href="http://software.fox21.at/dlc2txt/releases/dlc2txt-1.0.0.zip" target="_blank"><del datetime="2010-10-02T11:50:31+00:00">dlc2txt-1.0.0.zip</del></a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://fox21.at/dlc2txt-100.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Server Exploit Detection</title>
		<link>http://fox21.at/server-exploit-detection-host-ip-blacklist.html</link>
		<comments>http://fox21.at/server-exploit-detection-host-ip-blacklist.html#comments</comments>
		<pubDate>Sat, 21 Feb 2009 20:11:55 +0000</pubDate>
		<dc:creator>TheFox</dc:creator>
				<category><![CDATA[Homepage]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Blacklist]]></category>
		<category><![CDATA[Exploit]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[Log]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[XSS]]></category>

		<guid isPermaLink="false">http://fox21.at/?p=803</guid>
		<description><![CDATA[Ich hab&#8217; mir ein Perl Script geschrieben, das die Apache Log Files ausliest und eine Liste mit IP- und Hostadressen zusammen stellt, die versucht haben meinen Server durch Exploits zu hacken. Diese Liste findet man hier: http://pub.fox21.at/exploitdetect/hosts_only.txt Hier ein Auszug &#8230; <a href="http://fox21.at/server-exploit-detection-host-ip-blacklist.html">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ich hab&#8217; mir ein Perl Script geschrieben, das die Apache Log Files ausliest und eine Liste mit IP- und Hostadressen zusammen stellt, die versucht haben meinen Server durch Exploits zu hacken. Diese Liste findet man hier: <a target="_blank" href="http://pub.fox21.at/exploitdetect/hosts_only.txt" target="_blank">http://pub.fox21.at/exploitdetect/hosts_only.txt</a></p>
<p><span id="more-803"></span></p>
<p>Hier ein Auszug der Liste.</p>
<pre>faith.hallelujah.com
www56.your-server.de
210.183.36.251
211.233.11.27
castle.inforos.ru
cli9.unete.com.bo
211.202.2.220
disco-megasimarik.de
web2.connexhosting.com
203.250.148.36</pre>
<p>Die Zahl davor, ist die Anzahl der Versuche. Diese IP-Adressen werden von meinem Server geblockt. <a target="_blank" href="http://pub.fox21.at/exploitdetect/hosts_only.txt" target="_blank">hosts_only.txt</a> wird alle 15 Minuten automatisch aktuallisiert. Die Angreifer haben es in 90 % der Faelle mit einem <strong>Cross Site Script</strong> (XSS, Remote Injection) versucht. Meistens mit der HTTP GET Variable <em>INCLUDE_FOLDER=URL</em> oder <em>ADMIN_FOLDER=URL</em>. Wenn man sich die Liste genauer anschaut, dann wird man feststellen, dass ziemlich viele Russen dabei sind.</p>
<p>Normalerweise geb&#8217; ich nicht einfach so andere IP-Adressen her, die auf meine Homepage zugegriffen haben. Aber in dem Fall mach&#8217; ich eine Ausnahme. Diese Liste soll anderen Server Admins helfen, sich gegen diese Adressen zu schuetzen. Ich hab&#8217; die meisten IPs in dieser Liste geblockt. Man sollte als Admin zumindest die ersten 10 davon blocken. Manche davon versuchen es nur einmal. Manch&#8217; andere Versuchen es aber auch oefters, mit allen Mitteln.</p>
<p>Das Script ist derzeit noch nicht soweit ausgereift, um damit jede Art von Apache Log auszulesen. Das Format der Apache Logs ist indivituell anpassbar. Desswegen auch kein Release dieses Scripts.</p>
]]></content:encoded>
			<wfw:commentRss>http://fox21.at/server-exploit-detection-host-ip-blacklist.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DDL-Warez.org Links 1.1.0</title>
		<link>http://fox21.at/ddl-warezorg-links-110.html</link>
		<comments>http://fox21.at/ddl-warezorg-links-110.html#comments</comments>
		<pubDate>Tue, 17 Feb 2009 20:13:09 +0000</pubDate>
		<dc:creator>TheFox</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[CAPTCHA]]></category>
		<category><![CDATA[CGI]]></category>
		<category><![CDATA[DDL-Warez]]></category>
		<category><![CDATA[RapidShare]]></category>

		<guid isPermaLink="false">http://fox21.at/?p=796</guid>
		<description><![CDATA[ddl-warez.org laesst seit neuestem die Captcha Bilder weg. Warum auch immer. Jetzt ist es noch leichter die Links auszulesen. Ich haette an ihrer Stelle die Captcha Bilder gelassen. Aber mir soll&#8217;s recht sein. Ich hab&#8217; natuerlich mein Script angepasst und &#8230; <a href="http://fox21.at/ddl-warezorg-links-110.html">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a target="_blank" href="http://www.ddl-warez.org/" target="_blank">ddl-warez.org</a> laesst seit neuestem die <a target="_blank" href="http://de.wikipedia.org/wiki/Captcha" target="_blank">Captcha Bilder</a> weg. Warum auch immer. Jetzt ist es noch leichter die Links auszulesen. Ich haette an ihrer Stelle die Captcha Bilder gelassen. Aber mir soll&#8217;s recht sein. Ich hab&#8217; natuerlich mein Script angepasst und die neue Version online gestellt. Naehere Informationen ueber dieses Script im ersten Artikel <a target="_blank" href="/ddl-warezorg-links-100.html" target="_blank">DDL-Warez.org Links 1.0.0</a>.</p>
<p><a target="_blank" href="/ddl-warezorg-links-100.html" target="_blank">Installationsanleitung</a></p>
<h2><strong>Download</strong></h2>
<ul>
<li><a target="_blank" href="/ddl-warezorg-links-100.html" target="_blank">hier</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://fox21.at/ddl-warezorg-links-110.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>YouTube Download 1.0.0</title>
		<link>http://fox21.at/youtube-direct-download-100.html</link>
		<comments>http://fox21.at/youtube-direct-download-100.html#comments</comments>
		<pubDate>Sun, 15 Feb 2009 12:17:00 +0000</pubDate>
		<dc:creator>TheFox</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[chmod]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[flv]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[YouTube]]></category>

		<guid isPermaLink="false">http://cms.fox21.at/nocache/?p=766</guid>
		<description><![CDATA[Es gibt kein Problem, das man nicht mit Perl loesen koennte. Ja, ich weiss: es existieren schon unzaehlige Scripte und Programme im Netz, die genau das Gleiche machen wie meines hier. Aber ich dachte mir, ich koennte selber einmal ein &#8230; <a href="http://fox21.at/youtube-direct-download-100.html">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Es gibt kein Problem, das man nicht mit Perl loesen koennte. Ja, ich weiss: es existieren schon unzaehlige Scripte und Programme im Netz, die genau das Gleiche machen wie meines hier. Aber ich dachte mir, ich koennte selber einmal ein Script schreiben, dass die Videos direkt von <a target="_blank" href="http://www.youtube.com/" target="_blank">youtube.com</a> herunterladet. So kann man vielleicht die Funktionsweise besser verstehen. Ausserdem ist meines <a target="_blank" href="http://de.wikipedia.org/wiki/Open_source" target="_blank">Open Source</a>.</p>
<p><span id="more-766"></span></p>
<p>Es ist eigentlich ganz einfach. Auf jeder YouTube Seite, z.B. <a target="_blank" href="http://www.youtube.com/watch?v=g4uxIo4t7xM" target="_blank">http://www.youtube.com/watch?v=g4uxIo4t7xM</a>, gibt es im HTML Quellcode ein paar JavaScript Variablen, die Flash fuer sich verwendet. Die gesuchte Variable heisst <strong>swfArgs</strong>.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> swfArgs <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #3366CC;">&quot;q&quot;</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;ghostbusters&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;fexp&quot;</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;900076&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;vq&quot;</span><span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;sourceid&quot;</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;ys&quot;</span><span style="color: #339933;">,</span>
<span style="color: #3366CC;">&quot;video_id&quot;</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;g4uxIo4t7xM&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;l&quot;</span><span style="color: #339933;">:</span> <span style="color: #CC0000;">297</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;sk&quot;</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;-RplWXYJhe-YnAN5S824RPkvqdQKDg-rC&quot;</span><span style="color: #339933;">,</span>
<span style="color: #3366CC;">&quot;fmt_map&quot;</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;6/720000/7/0/0,34/0/9/0/115&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;usef&quot;</span><span style="color: #339933;">:</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span>
<span style="color: #3366CC;">&quot;t&quot;</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;vjVQa1PpcFPDn9RlUJw_zdoFEddjpuNrJr0crbQDefw=&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;hl&quot;</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;en&quot;</span><span style="color: #339933;">,</span>
<span style="color: #3366CC;">&quot;plid&quot;</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;AARi8t_zDjFbWjDVAAAAoAAICAA&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;cr&quot;</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;US&quot;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Darin kommt auch das Argument <em>t</em> vor. In dem Fall waere der Hash <strong>vjVQa1PpcFPDn9RlUJw_zdoFEddjpuNrJr0crbQDefw=</strong>. Dieser Hash aendert sich jedoch immer, wenn man die Seite neu ladet. Mit jedem Hash kann man das original Video nur <strong>einmal</strong> herunterladen. Von folgender URL kann man also dann das gewuenschte Video herunterladen.</p>
<pre>http://www.youtube.com/get_video?video_id={$id}&amp;t={$t}=&amp;el=detailpage&amp;ps=</pre>
<p><strong>{$id}</strong> muss durch die Video ID, die auch schon als <em>v</em> im original Link (http://www.youtube.com/watch?v=<strong>g4uxIo4t7xM</strong>) vorkommt, ersetzt werden. Und <strong>{$t}</strong> durch den Hash, den wir oben im JavaScript gefunden haben.</p>
<p>Das Script macht genau diese Schritte automatisch.</p>
<h2><strong>Benoetigte Perl-Module</strong></h2>
<ul>
<li>LWP::Simple</li>
<li>LWP::UserAgent</li>
<li>HTTP::Request</li>
<li>HTTP::Request::Common</li>
<li>HTTP::Response</li>
<li>File::Basename</li>
</ul>
<h2><strong>Installation</strong></h2>
<ol>
<li>Herunterladen von <a target="_blank" href="http://software.fox21.at/youtube/releases/youtube-1.0.0.zip">youtube-1.0.0.zip</a></li>
<li>Entpacken mit <em>unzip youtube-1.0.0.zip</em></li>
<li>Damit man die Scripte ausfuehren kann, Rechte mit chmod auf 755 stellen: <em>chmod 755 ./youtube.pl ./install.pl</em></li>
<li>Ausfuehren von <em>./install.pl</em> um zu sehen, ob alle benoetigten Perl Module installiert sind.</li>
</ol>
<h2><strong>Verwendung unter Linux</strong></h2>
<pre>./youtube.pl "URL"</pre>
<p>oder</p>
<pre>./youtube.pl "URL" "URL" "URL"</pre>
<h2><strong>Verwendung unter Windows</strong></h2>
<pre>perl youtube.pl "URL"</pre>
<p>oder</p>
<pre>perl youtube.pl "URL" "URL" "URL"</pre>
<p>Der oder die uebergebenen URLs sollten auf jeden Fall unter Hochkomma gestellt werden.  Nachdem man dann eines oder mehrere Videos erfolgreich heruntergeladen hat, wird man feststellen, dass sie die Endung <strong>.flv</strong> haben. Entweder schaut man sich die Videos direkt mit dem <a target="_blank" href="http://www.adobe.com/de/products/flashplayer/" target="_blank">Flashplayer</a> an, oder man nimmt das Programm <a target="_blank" href="http://ffmpeg.org/" target="_blank">ffmpeg</a> zur Hand und wandelt es in <strong>.mpg</strong> um.</p>
<h2><strong>.flv Konvertierung unter Linux mit <a target="_blank" href="http://ffmpeg.org/" target="_blank">ffmpeg</a></strong></h2>
<pre>ffmpeg -i movie.flv movie.mpg</pre>
<h2><strong>Download</strong></h2>
<ul>
<li><a target="_blank" href="http://software.fox21.at/youtube/releases/youtube-1.0.0.zip">youtube-1.0.0.zip</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://fox21.at/youtube-direct-download-100.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>stream2k.com Download Script 1.0.0</title>
		<link>http://fox21.at/stream2kcom-movies2kcom-download-script-100.html</link>
		<comments>http://fox21.at/stream2kcom-movies2kcom-download-script-100.html#comments</comments>
		<pubDate>Tue, 10 Feb 2009 20:23:11 +0000</pubDate>
		<dc:creator>TheFox</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[ffmpeg]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[flv]]></category>
		<category><![CDATA[movie2k]]></category>
		<category><![CDATA[Stream]]></category>
		<category><![CDATA[stream2k]]></category>

		<guid isPermaLink="false">http://cms.fox21.at/nocache/?p=746</guid>
		<description><![CDATA[Es gibt kein Problem, das man nicht mit Perl loesen koennte. Mit diesem Perl Script kann man die Filme von stream2k.com herunterladen. Man uebergibt einen Link wie z. B. http://www.movie2k.com/movie-38352-His+Name+Was+Jason%3A+30+Years+of+Friday+the+13th.html oder http://www.movie2k.com/movie-38374-96+Hours.html dem Script und es ladet anschliessend alle Filme &#8230; <a href="http://fox21.at/stream2kcom-movies2kcom-download-script-100.html">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Es gibt kein Problem, das man nicht mit Perl loesen koennte. Mit diesem Perl Script kann man die Filme von <a target="_blank" href="http://www.stream2k.com/" target="_blank">stream2k.com</a> herunterladen.</p>
<p><span id="more-746"></span></p>
<p>Man uebergibt einen Link wie z. B. <a target="_blank" href="http://www.movie2k.com/movie-38352-His+Name+Was+Jason%3A+30+Years+of+Friday+the+13th.html" target="_blank">http://www.movie2k.com/movie-38352-His+Name+Was+Jason%3A+30+Years+of+Friday+the+13th.html</a> oder <a target="_blank" href="http://www.movie2k.com/movie-38374-96+Hours.html" target="_blank">http://www.movie2k.com/movie-38374-96+Hours.html</a> dem Script und es ladet anschliessend alle Filme herunter. Mit ./install.pl kann man nachschauen, ob die noetigen Perl Module installiert sind. Auf <a target="_blank" href="http://www.movie2k.com/" target="_blank">http://www.movie2k.com/</a> muss darauf geachtet werden, dass man beim <strong>Alternativlink</strong> stream2k.com ausgewaehlt hat. Das Script holt sich naemlich die stream2k.com Links aus dem HTML Source Code. Ich weiss auch nicht, wie sich das Script verhaelt, wenn es fuer eine andere Seite als movie2k.com verwendet wird. Es kann unter Umstaenden nicht funktionieren, da es die .flv-Files (Flash Format) speichert. Am Ende hat man dann ein .flv-File.</p>
<h2><strong>Benoetigte Perl-Module</strong></h2>
<ul>
<li>LWP::Simple</li>
<li>LWP::UserAgent</li>
<li>HTTP::Request</li>
<li>HTTP::Request::Common</li>
<li>HTTP::Response</li>
<li>File::Basename</li>
</ul>
<h2><strong>Verwendung</strong></h2>
<p>Linux:</p>
<pre>./stream2k-com.pl "URL"</pre>
<p>Windows:</p>
<pre>perl stream2k-com.pl "URL"</pre>
<p>Es ist auch nicht schlecht, wenn die URLs mit von &#8220;-Zeichen umgeben sind. Wie im obrigen Beispiel. Es koennen auch mehrere URLs uebergeben werden.</p>
<pre>./stream2k-com.pl "URL" "URL"</pre>
<h2><strong>.flv Konvertierung unter Linux mit <a target="_blank" href="http://ffmpeg.org/" target="_blank">ffmpeg</a><br />
</strong></h2>
<pre>ffmpeg -i movie.flv movie.mpg</pre>
<h2><strong>Download</strong></h2>
<ul>
<li><a target="_blank" href="http://software.fox21.at/stream2k/releases/stream2k-1.0.0.zip" target="_blank">stream2k-1.0.0.zip</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://fox21.at/stream2kcom-movies2kcom-download-script-100.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DDL-Warez.org Links 1.0.0</title>
		<link>http://fox21.at/ddl-warezorg-links-100.html</link>
		<comments>http://fox21.at/ddl-warezorg-links-100.html#comments</comments>
		<pubDate>Mon, 02 Feb 2009 18:40:20 +0000</pubDate>
		<dc:creator>TheFox</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[CAPTCHA]]></category>
		<category><![CDATA[CGI]]></category>
		<category><![CDATA[chmod]]></category>
		<category><![CDATA[DDL-Warez]]></category>
		<category><![CDATA[RapidShare]]></category>

		<guid isPermaLink="false">http://cms.fox21.at/nocache/?p=714</guid>
		<description><![CDATA[Es gibt kein Problem, das man nicht mit Perl loesen koennte. Dieses Perl Script ist eigentlich genau so wie das SerienJunkies Links Tool. Es kann dazu verwendet werden, um die rapidshare.com Links von ddl-warez.org auszulesen. Man gibt in einem Textfeld &#8230; <a href="http://fox21.at/ddl-warezorg-links-100.html">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Es gibt kein Problem, das man nicht mit Perl loesen koennte. Dieses Perl Script ist eigentlich genau so wie das <a target="_blank" href="/serienjunkiesorg-links-100.html" target="_blank">SerienJunkies Links Tool</a>. Es kann dazu verwendet werden, um die rapidshare.com Links von ddl-warez.org auszulesen.</p>
<p><span id="more-714"></span></p>
<p>Man gibt in einem Textfeld einen oder mehrere Links wie <a target="_blank" href="http://www.ddl-warez.org/detail.php?id=23430&amp;cat=movies" target="_blank">http://www.ddl-warez.org/detail.php?id=23430&amp;cat=movies</a> und/oder <a target="_blank" href="http://www.ddl-warez.org/detail.php?id=11641&amp;cat=movies" target="_blank">http://www.ddl-warez.org/detail.php?id=11641&amp;cat=movies</a> an, und bekommt dann die direkten RapidShare Links. Die Links muessen mit einem Zeilenumbruch getrennt werden. Also pro Zeile ein Link. Es bleibt einem jedoch nicht erspart, die <a target="_blank" href="http://de.wikipedia.org/wiki/Captcha" target="_blank">Captcha Bilder</a> einzugeben. Aber es ist dennoch eine Hilfe, da nicht alle Links von Hand heraus kopiert werden muessen. Am Ende hat man alle RapidShare Links in einem Textfeld. Es kann vorkommen, dass das Script etwas laenger ladet, da alle Links mit einem POST Request aufgerufen werden, damit die RapidShare Links geparst werden koennen. Bei 36 Parts kann es dann schon einmal vorkommen, dass es laenger braucht.</p>
<h2><strong>Benoetigte Perl-Module</strong></h2>
<ul>
<li>CGI</li>
<li>LWP::Simple</li>
<li>LWP::UserAgent</li>
<li>HTTP::Request</li>
<li>HTTP::Request::Common</li>
<li>HTTP::Response</li>
<li>URI::Escape</li>
</ul>
<h2><strong>Installation</strong></h2>
<ol>
<li>Herunterladen von ddllinks-1.0.0.zip (siehe ganz unten)</li>
<li>Entpacken mit <em>unzip ddllinks-1.0.0.zip</em> (oder unter Windows mit einem anderen Tool)</li>
<li>Rechte setzen: <em>chmod 755 ddllinks.pl install.pl</em></li>
<li>Mit <em>./install.pl</em> kann man ueberpruefen ob die noetigen Module, auf dem Rechner installiert sind. Sind sie nicht installiert, fragt einem das Script, ob man die fehlenden Module nach installieren will. install.pl muss ueber die Konsole ausgefuehrt werden.</li>
<li>Damit ddllinks.pl auch mit den Browser funktioniert, muss das Script eventuell auf ddllinks.cgi umbenannt werden und in einen CGI-Ordner (/cgi-bin/) verschoben werden. Andernfalls eine .htaccess im gleichen Ordner anlegen und <em>Options +ExecCgi</em> hinein schreiben.</li>
<li>Fertig. Jetzt kann mit dem Browser auf die ddllinks.pl zugeriffen werden.</li>
</ol>
<h2><strong>Download</strong></h2>
<ul>
<li><a target="_blank" href="/ddl-warezorg-links-200-flash-captchas.html" target="_blank">neuere Versionen</a></li>
<li><a target="_blank" href="http://software.fox21.at/ddllinks/releases/ddllinks-1.4.0.zip" target="_blank"><del datetime="2009-04-29T20:10:34+00:00">ddllinks-1.4.0.zip</del></a></li>
<li><a target="_blank" href="http://software.fox21.at/ddllinks/releases/ddllinks-1.3.0.zip" target="_blank"><del datetime="2009-04-23T19:13:51+00:00">ddllinks-1.3.0.zip</del></a></li>
<li><a target="_blank" href="http://software.fox21.at/ddllinks/releases/ddllinks-1.2.0.zip" target="_blank"><del datetime="2009-03-10T06:32:46+00:00">ddllinks-1.2.0.zip</del></a></li>
<li><a target="_blank" href="http://software.fox21.at/ddllinks/releases/ddllinks-1.1.0.zip" target="_blank"><del datetime="2009-02-17T00:00:00+00:00">ddllinks-1.1.0.zip</del></a></li>
<li><a target="_blank" href="http://software.fox21.at/ddllinks/releases/ddllinks-1.0.0.zip" target="_blank"><del datetime="2009-02-22T10:02:40+00:00">ddllinks-1.0.0.zip</del></a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://fox21.at/ddl-warezorg-links-100.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SerienJunkies.org Links 1.0.0</title>
		<link>http://fox21.at/serienjunkiesorg-links-100.html</link>
		<comments>http://fox21.at/serienjunkiesorg-links-100.html#comments</comments>
		<pubDate>Sun, 01 Feb 2009 18:06:06 +0000</pubDate>
		<dc:creator>TheFox</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[CAPTCHA]]></category>
		<category><![CDATA[CGI]]></category>
		<category><![CDATA[chmod]]></category>
		<category><![CDATA[RapidShare]]></category>
		<category><![CDATA[SerienJunkies]]></category>

		<guid isPermaLink="false">http://cms.fox21.at/nocache/?p=690</guid>
		<description><![CDATA[Es gibt kein Problem, das man nicht mit Perl loesen koennte. Dieses Perl Script kann dazu verwendet werden, um die rapidshare.com Links von serienjunkies.org auszulesen. Man gibt in einem Textfeld einen oder mehrere Links wie http://serienjunkies.org/?cat=43 und/oder http://serienjunkies.org/?p=108 an, und &#8230; <a href="http://fox21.at/serienjunkiesorg-links-100.html">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Es gibt kein Problem, das man nicht mit Perl loesen koennte. Dieses Perl Script kann dazu verwendet werden, um die rapidshare.com Links von serienjunkies.org auszulesen.</p>
<p><span id="more-690"></span></p>
<p>Man gibt in einem Textfeld einen oder mehrere Links wie <a target="_blank" href="http://serienjunkies.org/?cat=43" target="_blank">http://serienjunkies.org/?cat=43</a> und/oder <a target="_blank" href="http://serienjunkies.org/?p=108" target="_blank">http://serienjunkies.org/?p=108</a> an, und bekommt dann die direkten RapidShare Links. Die Links muessen mit einem Zeilenumbruch getrennt werden. Also pro Zeile ein Link. Es bleibt einem jedoch nicht erspart, die <a target="_blank" href="http://de.wikipedia.org/wiki/Captcha" target="_blank">Captcha Bilder</a> einzugeben. Aber es ist dennoch eine Hilfe, da nicht alle Links von Hand heraus kopiert werden muessen. Zwischen den einelnen Links sollte man jedoch eine gewisse Zeit warten, weil es sonst vorkommen kann, dass serienjunkies.org die eigene IP Adresse sperrt. Am Ende hat man alle RapidShare Links in einem Textfeld. Wenn serienjunkies.org nicht erreichbar ist, braucht das Script lange zum Laden.</p>
<h2><strong>Benoetigte Perl-Module</strong></h2>
<ul>
<li>CGI</li>
<li>LWP::Simple</li>
<li>LWP::UserAgent</li>
<li>HTTP::Request</li>
<li>HTTP::Request::Common</li>
<li>HTTP::Response</li>
</ul>
<h2><strong>Installation</strong></h2>
<ol>
<li>Herunterladen von <a target="_blank" href="http://software.fox21.at/sjlinks/releases/sjlinks-1.0.0.zip" target="_blank">sjlinks-1.0.0.zip</a></li>
<li>Entpacken mit <em>unzip sjlinks-1.0.0.zip</em> (oder unter Windows mit einem anderen Tool)</li>
<li>Rechte setzen: <em>chmod 755 sjlinks.pl install.pl</em></li>
<li>Mit <em>./install.pl</em> kann man ueberpruefen ob die noetigen Module, auf dem Rechner installiert sind. Sind sie nicht installiert, fragt einem das Script, ob man die fehlenden Module nach installieren will. install.pl muss ueber die Konsole ausgefuehrt werden.</li>
<li>Damit sjlinks.pl auch mit den Browser funktioniert, muss das Script eventuell auf sjlinks.cgi umbenannt werden und in einen CGI-Ordner (/cgi-bin/) verschoben werden. Andernfalls eine .htaccess im gleichen Ordner anlegen und <em>Options +ExecCgi</em> hinein schreiben.</li>
<li>Fertig. Jetzt kann mit dem Browser auf die sjlinks.pl zugeriffen werden.</li>
</ol>
<h2><strong>Download</strong></h2>
<ul>
<li><a target="_blank" href="http://software.fox21.at/sjlinks/releases/sjlinks-1.0.0.zip" target="_blank">sjlinks-1.0.0.zip</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://fox21.at/serienjunkiesorg-links-100.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>RapidShare.com Link Check 1.0.0</title>
		<link>http://fox21.at/rapidshare-com-link-check-100.html</link>
		<comments>http://fox21.at/rapidshare-com-link-check-100.html#comments</comments>
		<pubDate>Sat, 31 Jan 2009 18:19:02 +0000</pubDate>
		<dc:creator>TheFox</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[CGI]]></category>
		<category><![CDATA[chmod]]></category>
		<category><![CDATA[GET]]></category>
		<category><![CDATA[HEAD]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[LWP::Simple]]></category>
		<category><![CDATA[One-Click-Hoster]]></category>
		<category><![CDATA[POST]]></category>
		<category><![CDATA[RapidShare]]></category>

		<guid isPermaLink="false">http://cms.fox21.at/nocache/?p=675</guid>
		<description><![CDATA[Es gibt kein Problem, das man nicht mit Perl loesen koennte. Mit diesem Perl Script koennen Links von rapidshare.com auf Verfuegbarkeit ueberprueft werden. Natuerlich kann man das Script auch fuer andere Seiten verwenden. Aber wie funktioniert das Ganze? Das Modul &#8230; <a href="http://fox21.at/rapidshare-com-link-check-100.html">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Es gibt kein Problem, das man nicht mit Perl loesen koennte. Mit diesem Perl Script koennen Links von rapidshare.com auf Verfuegbarkeit ueberprueft werden. Natuerlich kann man das Script auch fuer andere Seiten verwenden.</p>
<p><span id="more-675"></span></p>
<p>Aber wie funktioniert das Ganze? Das Modul LWP::Simple enthaelt die Funktion head(). Dieser einen URL uebergeben, und sie schickt die HTTP-Request-Methode <strong>HEAD</strong> (Bruder von <strong>GET</strong> und <strong>POST</strong>) an die angegebene URL. Die Funktion bekommt nur den HTTP-Header zurueck, und nicht den eigentlichen Inhalt. Somit kann ganz einfach ueberpruefen werden, ob man die Dateien noch herunterladen kann oder nicht. Sind alle Links OK, wird <em>All: OK</em> angezeigt. Alle Links, die nicht mehr gueltig sind, werden als <em>FAILT</em> angezeigt. Das Script ist extra fuer rapidshare.com ausgelegt. Zwar koennen auch andere Links eingegeben werden, aber dann koennte das Ergebnis nicht stimmen. Ist die <em>content-length</em> vom HTTP-Header kleiner als 10000 Byte, wird der Link als ungueltig angezeigt. Dieses Limit kann natuerlich beliebig angepasst werden. Zum Beispiel wird bei einem Link <em>FAILT</em> angezeigt, der auf eine Seite zeigt, die weniger als 10000 Bytes beinhaltet. Da aber die meisten RapidShare-File 100 MB haben, kann man damit genau feststellen, ob Dateien noch gueltig sind. Es darf nur ein Link pro Zeile angegeben werden.</p>
<h2><strong>Benoetigte Perl-Module</strong></h2>
<ul>
<li>CGI</li>
<li>LWP::Simple</li>
</ul>
<h2><strong>Installation</strong></h2>
<ol>
<li>Herunterladen von <a target="_blank" href="http://software.fox21.at/rscheck/releases/rscheck-1.0.0.zip" target="_blank">rscheck-1.0.0.zip</a></li>
<li>Entpacken mit <em>unzip rscheck-1.0.0.zip</em></li>
<li>Rechte setzen, damit der HTTP-Prozess dieses Script ausfuehren kann: <em>chmod 755 install.pl rscheck.pl</em></li>
<li>Mit <em>./install.pl</em> kann man ueberpruefen ob die noetigen Module, in dem Fall CGI und LWP::Simple, auf dem Rechner installiert sind. Sind sie <strong>nicht</strong> installiert, fragt einem das Script, ob man die fehlenden Module nach installieren will. install.pl muss ueber die Konsole ausgefuehrt werden.</li>
<li>Damit rscheck.pl auch mit den Browser funktioniert, muss das Script eventuell auf rscheck.cgi umbenannt werden und in einen CGI-Ordner (/cgi-bin/) verschoben werden. Andernfalls eine .htaccess im gleichen Ordner anlegen und <em>Options +ExecCgi</em> hinein schreiben.</li>
<li>Fertig. Jetzt kann mit dem Browser auf die rscheck.pl zugeriffen werden.</li>
</ol>
<h2><strong>Download</strong></h2>
<ul>
<li><a target="_blank" href="http://software.fox21.at/rscheck/releases/rscheck-1.0.0.zip" target="_blank">rscheck-1.0.0.zip</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://fox21.at/rapidshare-com-link-check-100.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Windows Hintergrundprozess mit Perl</title>
		<link>http://fox21.at/windows-hintergrundprozess-mit-perl.html</link>
		<comments>http://fox21.at/windows-hintergrundprozess-mit-perl.html#comments</comments>
		<pubDate>Fri, 30 Jan 2009 12:17:51 +0000</pubDate>
		<dc:creator>TheFox</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[ActivePerl]]></category>
		<category><![CDATA[Daemon::Easy]]></category>
		<category><![CDATA[ERROR]]></category>
		<category><![CDATA[POSIX]]></category>
		<category><![CDATA[Proc::Background]]></category>
		<category><![CDATA[Prozess]]></category>
		<category><![CDATA[Visual Basic]]></category>
		<category><![CDATA[Win32::Console]]></category>
		<category><![CDATA[Win32::Process]]></category>
		<category><![CDATA[Working::Daemon]]></category>

		<guid isPermaLink="false">http://cms.fox21.at/nocache/?p=605</guid>
		<description><![CDATA[Ein Perl-Script unter Windows im Hintergrund rennen zu lassen waere schon etwas feines, dachte ich mir. Aber Windoof laesst keine Hintergrundprozesse zu, wird das jeweilige Programm (in dem Fall perl.exe) von der Commandline ausgefuehrt. Ich hab&#8217;s mit allen moeglichen Tricks &#8230; <a href="http://fox21.at/windows-hintergrundprozess-mit-perl.html">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ein Perl-Script unter Windows im Hintergrund rennen zu lassen waere schon etwas feines, dachte ich mir. Aber Win<strong>doof</strong> laesst keine Hintergrundprozesse zu, wird das jeweilige Programm (in dem Fall perl.exe) von der Commandline ausgefuehrt.</p>
<p><span id="more-605"></span></p>
<p>Ich hab&#8217;s mit allen moeglichen Tricks probiert. STDIN, STDOUT und STDERR nach nul (unter Windows nur mit einem L) umleiten, <em>fork()</em>, von einem anderen Script aus mit <em>open</em> eine Pipe oeffnen, mit <em>cmd.exe /C</em> und mit <em>start /B</em>. Und auch all&#8217; diese verschiedenen Moeglichkeiten kombiniert. Aber nichts funktioniert. Ich kann mich an <strong>Visual Basic</strong> erinnern. Sogar <strong>das</strong> kann Prozesse komplett im Hintergrund starten. Aber es liegt nicht an Perl, dass die Windows Commandline so <span style="text-decoration: line-through;">beschissen</span> ist. Das zeigt, dass die Linux Shell sehr maechtig ist. Wofuer gibt es dann unter Windows eigentlich cmd.exe, wenn sie nichts kann? Das ist wie der Blinddarm im menschlichen Koerper. Es muss doch eine Moeglichkeit geben, um ganz einfach einen Prozess im Hintergrund rennen zu lassen. Ich will nicht extra Module installieren muessen, nur um dieses Problem zu loesen. Selber schuld, wieso verwend&#8217; ich auch Windows?</p>
<p>Schliesslich blieb mir doch nichts anderes ueber, als ein vorhandenes Perl-Modul fuer diesen Job zu installieren. Jedoch bevor ich ein passendes Modul gefunden hatte, probierte ich folgende Module aus: <a target="_blank" href="http://search.cpan.org/perldoc?Daemon::Easy" target="_blank">Daemon::Easy</a>, <a target="_blank" href="http://search.cpan.org/perldoc?Working::Daemon" target="_blank">Working::Daemon</a>, <a target="_blank" href="http://search.cpan.org/perldoc?Win32::Console" target="_blank">Win32::Console</a> und <a target="_blank" href="http://search.cpan.org/perldoc?Proc::Background" target="_blank">Proc::Background</a>. Alle haben eines gemeinsam: <a target="_blank" href="http://search.cpan.org/perldoc?POSIX" target="_blank">POSIX::setsid()</a>. <em>ERROR: POSIX::setsid not implemented on this architecture</em>. Will man setsid() unter Windows XP verwenden, wird diese Fehlermeldung angezeigt. <a target="_blank" href="http://search.cpan.org/perldoc?Win32::Process" target="_blank">Win32::Process</a> war dann schliesslich des Raetels Loesung. Die anderen Module starten zwar auch einen Prozess im Hintergrund, aber sobald cmd.exe beendet wird, werden auch alle anderen Prozesse beendet, die ueber diese Console gestartet worden sind. Win32::Process startet naemlich einen richtigen Hintergrundprozess, vorausgesetzt das cFlag ist DETACHED_PROCESS.</p>

<div class="wp_syntax"><div class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">use</span> Win32<span style="color: #339933;">::</span><span style="color: #006600;">Process</span><span style="color: #339933;">;</span>
Win32<span style="color: #339933;">::</span><span style="color: #006600;">Process</span><span style="color: #339933;">::</span><span style="color: #006600;">Create</span><span style="color: #009900;">&#40;</span>
	<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$proc</span><span style="color: #339933;">,</span>
	<span style="color: #0000ff;">$^X</span><span style="color: #339933;">,</span>
	<span style="color: #ff0000;">'perl run.pl'</span><span style="color: #339933;">,</span>
	<span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span>
	DETACHED_PROCESS<span style="color: #339933;">,</span>
	<span style="color: #ff0000;">'.'</span>
<span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #000066;">die</span> <span style="color: #ff0000;">&quot;Win32::Process::Create failed<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span></pre></div></div>

<h2><strong>Benoetigte Perl-Module</strong></h2>
<ul>
<li>File::Basename</li>
<li>Win32::Process</li>
</ul>
<h2><strong>Download</strong></h2>
<ul>
<li> <a target="_blank" href="http://software.fox21.at/windaemon/releases/windaemon-1.1.0.zip">windaemon-1.1.0.zip</a></li>
<li><del datetime="2009-03-24T19:44:14+00:00"><a target="_blank" href="http://software.fox21.at/windaemon/releases/windaemon-1.0.0.zip">windaemon-1.0.0.zip</a></del></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://fox21.at/windows-hintergrundprozess-mit-perl.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TCP/UDP Pipe 1.0.0</title>
		<link>http://fox21.at/tcp-udp-pipe-bridge-proxy-100.html</link>
		<comments>http://fox21.at/tcp-udp-pipe-bridge-proxy-100.html#comments</comments>
		<pubDate>Sat, 17 Jan 2009 21:21:35 +0000</pubDate>
		<dc:creator>TheFox</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[ActivePerl]]></category>
		<category><![CDATA[Bridge]]></category>
		<category><![CDATA[Client]]></category>
		<category><![CDATA[IO::Select]]></category>
		<category><![CDATA[IO::Socket::INET]]></category>
		<category><![CDATA[IP]]></category>
		<category><![CDATA[Netcat]]></category>
		<category><![CDATA[Pipe]]></category>
		<category><![CDATA[Proxy]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[TCP]]></category>
		<category><![CDATA[UDP]]></category>

		<guid isPermaLink="false">http://fox21.at/?p=370</guid>
		<description><![CDATA[Es gibt kein Problem, das man nicht mit Perl loesen koennte. TCP/UDP Pipe ist ein Perl Script, dass zwischen einem Server und einem Clienten eine Verbindung herstellt. Aehnlich wie bei Netcat, einem Proxy oder einem TCP-Tunnel. Man kann damit nicht &#8230; <a href="http://fox21.at/tcp-udp-pipe-bridge-proxy-100.html">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Es gibt kein Problem, das man nicht mit Perl loesen koennte. TCP/UDP Pipe ist ein Perl Script, dass zwischen einem Server und einem Clienten eine Verbindung herstellt. Aehnlich wie bei <a target="_blank" href="http://netcat.sourceforge.net/" target="_blank">Netcat</a>, einem Proxy oder einem TCP-Tunnel. Man kann damit nicht nur eine TCP zu TCP und UDP zu UDP Verbindung betreiben, sondern auch UDP zu TCP und TCP zu UDP.</p>
<p><span id="more-370"></span></p>
<p>Wobei UDP zu TCP und TCP zu UDP nicht so reibungslos funktioniert wie zwei Verbindungen der gleichen Art. Natuerlich koennen auch mehrere Verbindungen gleichzeitig mit ein und dem selben Server hergestellt werden. Wenn sich ein neuer Client verbindet, wird dafuer ein eigener <a target="_blank" href="http://search.cpan.org/perldoc?IO::Socket::INET" target="_blank">Socket</a> erstellt. In der <strong>tcppipe.conf</strong> Datei, die auch in der zip-Datei enthalten ist, befindet sich ein Beispiel zum Testen. Wenn man die conf-Datei unveraendert laesst und tcppipe.pl startet, wird am lokalen Computer ein TCP Server auf Port <strong>2102</strong> erstellt. Wenn man dann mit dem Browser auf <a target="_blank" href="http://localhost:2102/" target="_blank">http://localhost:2102/</a> schaut, wird man feststellen, dass <a target="_blank" href="http://fox21.at/" target="_blank">meine Seite</a> erscheint. Die Anfragen an <strong>localhost:2102</strong> werden also auf <strong>fox21.at:80</strong> weitergeleitet. Die Konfigurationsdatei (tcppipe.conf) kann man natuerlich beliebig anpassen. Wenn <em>localhost</em> (= 127.0.0.1, <a target="_blank" href="http://de.wikipedia.org/wiki/Loopback" target="_blank">Loopback</a>) fuer den lokalen Server verwendet wird, dann kann man nur vom selben Computer darauf zugreifen. Nicht aber von einem Anderen. Wenn von jedem Computer im Netzwerk darauf zugegriffen werden darf, muss man fuer die lokale <a target="_blank" href="http://de.wikipedia.org/wiki/Internet_Protocol" target="_blank">IP-Adresse</a> z.B. <em>192.168.241.21</em> verwenden. Kommt darauf an, welche IP-Adresse der Computer im Netzwerk hat. Verwendet man <em>0.0.0.0</em> als lokale IP-Adresse fuer den Server, so wird auf allen Interfaces gelauscht (<em>LISTEN</em>). Dieses Script funktioniert auch mit ActivePerl. Es benoetigt die Module <a target="_blank" href="http://search.cpan.org/perldoc?IO::Select" target="_blank">IO::Select</a>, <a target="_blank" href="http://search.cpan.org/perldoc?IO::Socket::INET" target="_blank">IO::Socket::INET</a> und <a target="_blank" href="http://search.cpan.org/perldoc?Time::HiRes" target="_blank">Time::HiRes</a>.</p>
<h2><strong>Benoetigte Perl-Module</strong></h2>
<ul>
<li>IO::Select</li>
<li>IO::Socket::INET</li>
<li>Time::HiRes</li>
</ul>
<h2><strong>Konfiguration</strong></h2>
<ul>
<li>Jeder <em>server</em>-Block muss einen <em>client</em>-Block enthalten.</li>
<li>Die <em>ip</em>, egal ob im server- oder im client-Block muss folgendes Format haben: <strong>host:port</strong></li>
</ul>
<h2><strong>Flags</strong></h2>
<p>Hier ist eine Liste mit den Bedeutungen des <em>flags</em>-Feldes, das in jedem <em>server</em>- und <em>client</em>-Block vorkommen sollte:</p>
<ul>
<li><em>a</em> = active: Wenn kein <em>a</em> vorkommt, wird der Server nicht erstellt. Damit kann man ganz einfach den Server ein- und ausschalten. Natuerlich wird dann auch kein Client erstellt. Was das <em>a</em> im Client-Block ueberfluessig macht.</li>
<li><em>t</em> oder <em>u</em>: TCP oder UDP. Das <em>t</em> steht fuer <strong>T</strong>CP und das <em>u</em> fuer <strong>U</strong>DP. Schreibt man beides in das gleiche flags-Feld, so wird TCP verwendet.</li>
<li><em>s</em>, <em>c</em> oder <em>l</em> = server, client und lokal client: Jeder Server hat intern eine s-Flag und jeder Client ein c-Flag. Cienten, die zum lokalen Server verbunden sind, haben ein l-Flag (kleines L). Diese 3 Flags sind jedoch fuer die Konfigurationsdatei unwichtig, da sie nur intern in der Funktion <em>parseConfig</em> vergeben werden. Und natuerlich auch, wenn ein neuer Socket erstellt wird.</li>
</ul>
<h2><strong>Download</strong></h2>
<ul>
<li><a target="_blank" href="http://software.fox21.at/tcppipe/releases/tcppipe-1.0.0.zip">tcppipe-1.0.0.zip</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://fox21.at/tcp-udp-pipe-bridge-proxy-100.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>perljunkie.at</title>
		<link>http://fox21.at/perljunkieat.html</link>
		<comments>http://fox21.at/perljunkieat.html#comments</comments>
		<pubDate>Sat, 27 Dec 2008 14:07:54 +0000</pubDate>
		<dc:creator>TheFox</dc:creator>
				<category><![CDATA[Homepage]]></category>
		<category><![CDATA[Domain]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://fox21.at/?p=277</guid>
		<description><![CDATA[Heute hab ich mir die Domain perljunkie.at registriert. Da ich die meisten Sachen nur noch in Perl mache, dachte ich mir, ich brauch auch eine passende Domain dazu. Damit man meine Scripte besser findet. Natuerlich bleibt fox21.at weiterhin bestehen. Ich &#8230; <a href="http://fox21.at/perljunkieat.html">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Heute hab ich mir die Domain <a target="_blank" href="http://perljunkie.at/" target="_blank">perljunkie.at</a> registriert. Da ich die meisten Sachen nur noch in Perl mache, dachte ich mir, ich brauch auch eine passende Domain dazu. Damit man meine Scripte besser findet. Natuerlich bleibt fox21.at weiterhin bestehen. Ich hab mir vorher natuerlich eine Genehmigung von der <a target="_blank" href="http://www.perlfoundation.org/" target="_blank">Perl Foundation</a> geholt. Perl ist einfach die beste Programmiersprache von allen!</p>
]]></content:encoded>
			<wfw:commentRss>http://fox21.at/perljunkieat.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL Backup 1.0.0</title>
		<link>http://fox21.at/mysql-backup-100.html</link>
		<comments>http://fox21.at/mysql-backup-100.html#comments</comments>
		<pubDate>Sun, 21 Dec 2008 19:02:36 +0000</pubDate>
		<dc:creator>TheFox</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[chmod]]></category>
		<category><![CDATA[Crontab]]></category>
		<category><![CDATA[Dump]]></category>
		<category><![CDATA[Export]]></category>
		<category><![CDATA[GZip]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[MySQLDump]]></category>
		<category><![CDATA[RAR]]></category>
		<category><![CDATA[TAR]]></category>

		<guid isPermaLink="false">http://fox21.at/?p=234</guid>
		<description><![CDATA[Es gibt kein Problem, das man nicht mit Perl loesen koennte. Ich hab mir heute ein Script geschrieben, das von allen MySQL-Datenbanken einen Dump (Export) macht und die ausgegebene Datei dann anschliessend in RAR oder TAR/GZip packt. Benoetigte Perl-Module DBI &#8230; <a href="http://fox21.at/mysql-backup-100.html">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Es gibt kein Problem, das man nicht mit Perl loesen koennte. Ich hab mir heute ein Script geschrieben, das von allen <a target="_blank" href="http://www.mysql.com/" target="_blank">MySQL</a>-Datenbanken einen Dump (Export) macht und die ausgegebene Datei dann anschliessend in <a target="_blank" href="http://www.rarlab.com/" target="_blank">RAR</a> oder <a target="_blank" href="http://www.gnu.org/software/tar/" target="_blank">TAR</a>/<a target="_blank" href="http://www.gzip.org/" target="_blank">GZip</a> packt.<strong></strong></p>
<p><span id="more-234"></span></p>
<h2><strong>Benoetigte Perl-Module</strong></h2>
<ul>
<li>DBI</li>
</ul>
<h2><strong>Installation</strong></h2>
<ol>
<li>Mit User <strong>root</strong> einloggen (optional)</li>
<li><a target="_blank" href="http://software.fox21.at/mkbakmysql/releases/mkbak.mysql-1.0.0.zip">Herunterladen des Scripts</a></li>
<li>Entpacken mit <em>unzip mkbak.mysql-1.0.0.zip</em></li>
<li>Rechte aendern, damit niemand anders das Script ausfuehren und lesen kann: <em>chmod 700 mkbak.mysql.pl</em></li>
<li><strong>Configuration</strong>: Nach dem Kommantar <em># CONFIG START</em> gibt es ein paar Einstellungen, die man aendern sollte. Die Variable <strong>$DBUSER</strong> sollte man auf <em>root</em> lassen, damit alle Datenbanken exportiert werden.  Die Variable <strong>$DBPASS</strong> muss das MySQL-Root-Passwort enthalten. Und die 3. Variable, die man aendern sollte, ist <strong>$BAKDIR</strong>. Dort hinein werden dann die Backup-Files gespeichert. Als Standard ist jetzt <strong>~/mysql_backup</strong> eingestellt. Diesen Ordner sollte man auch auf <em>chmod 700</em> setzen, damit niemand anders auf die MySQL-Files zugreiffen kann. Wenn man RAR installiert hat, kann man noch optional die Variable <strong>$RAR</strong> setzten. Sollte sich das Tar-Programm nicht unter <strong>/bin/tar</strong> befinden, so kann man es auch aendern. Genau so auch mit GZip (<strong>$GZIP</strong>).</li>
<li>Wenn man sich bei Schritt 1 nicht mit <strong>root</strong> eingeloggt hat, muss man die Datei <strong>/var/log/mkbak.mysql.log</strong> haendisch mit dem User root erstellen und die Rechte richtig setzen. Oder man aendert den Logfile-Pfad auf einen Eigenen. Z.B. auf <em>./mkbak.mysql.log</em></li>
<li>Jetzt kann man den ersten Test machen: <em>./mkbak.mysql.pl</em></li>
<li>Danach schaut man sich das Logfile (/var/log/mkbak.mysql.log) an, ob irgendwelche Fehler aufgetretten sind.</li>
<li>Optional kann man folgende Zeile zu den Cronjobs hinzufuegen, damit jeden Tag um 00:00 Uhr das Script ausgefuehrt wird: <em>0 0 * * * /path/to/the/mkbak.mysql.pl</em></li>
</ol>
<h2><strong>Download</strong></h2>
<ul>
<li><a target="_blank" href="http://software.fox21.at/mkbakmysql/releases/mkbak.mysql-1.0.0.zip">mkbak.mysql-1.0.0.zip</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://fox21.at/mysql-backup-100.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IP2Location &#8211; Location2IP &#8211; Country2IP &#8211; IP2Country</title>
		<link>http://fox21.at/ip2location-location2ip-country2ip-ip2country.html</link>
		<comments>http://fox21.at/ip2location-location2ip-country2ip-ip2country.html#comments</comments>
		<pubDate>Mon, 15 Dec 2008 13:00:01 +0000</pubDate>
		<dc:creator>TheFox</dc:creator>
				<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Country2IP]]></category>
		<category><![CDATA[Geo::IPfree]]></category>
		<category><![CDATA[Geotargeting]]></category>
		<category><![CDATA[IP2Country]]></category>
		<category><![CDATA[IP2Location]]></category>
		<category><![CDATA[Location2IP]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://fox21.at/?p=141</guid>
		<description><![CDATA[Mit dem Perl-Modul Geo::IPfree hab ich mir jetzt eine hilfreiche IP2Location-Webanwendung zusammen gebastelt. Damit kann man von einer IP-Adresse das zugehoerige Land herausfinden. Meine IP-Adresse gehoert &#8211; komischerweise &#8211; zu Schweden. Wie ist meine IP-Adresse sagt aber, dass ich aus &#8230; <a href="http://fox21.at/ip2location-location2ip-country2ip-ip2country.html">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Mit dem Perl-Modul <a target="_blank" href="http://search.cpan.org/dist/Geo-IPfree/" target="_blank">Geo::IPfree</a> hab ich mir jetzt eine hilfreiche <a target="_blank" href="http://tools.fox21.at/ip2location.php" target="_blank">IP2Location</a>-Webanwendung zusammen gebastelt. Damit kann man von einer <a target="_blank" href="http://de.wikipedia.org/wiki/IP-Adresse" target="_blank">IP-Adresse</a> das zugehoerige Land herausfinden. Meine IP-Adresse gehoert &#8211; komischerweise &#8211; zu Schweden. <a target="_blank" href="http://www.wieistmeineip.at/" target="_blank">Wie ist meine IP-Adresse</a> sagt aber, dass ich aus Oesterreich komme. Was ja auch stimmt. Ich hab mir zuerst mit dem Script <strong>Geo-IPfree-0.4/misc/ipct2txt.pl</strong> aus der Datenbank eine lesbare <a target="_blank" href="http://de.wikipedia.org/wiki/ASCII" target="_blank">ASCII</a> Datei erstellen lassen. Danach hab ich mir ein Script geschrieben, das die ASCII Daten in meine <a target="_blank" href="http://www.mysql.com/" target="_blank">MySQL</a>-Datenbank importiert. Ich will ja schliesslich nicht nur eine <a target="_blank" href="http://tools.fox21.at/ip2location.php" target="_blank">IP2Country</a>-, sondern auch eine <a target="_blank" href="http://tools.fox21.at/ip2location.php" target="_blank">Country2IP</a>-Funktion. Wenn man eine IP-Adresse eingibt, zeigt er alle IPs von dem Land an und markiert den Bereich rot. Oder man waehlt ein Land aus und dann zeigt er auch alle Adressbloecke von dem ausgewaehlen Land an.</p>
<p>Unter den <a target="_blank" href="http://tools.fox21.at/" target="_blank">Tools</a> findet man auch noch ein paar andere hilfreiche Sachen.</p>
]]></content:encoded>
			<wfw:commentRss>http://fox21.at/ip2location-location2ip-country2ip-ip2country.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>1 Jahr LAOLA1.at</title>
		<link>http://fox21.at/1-jahr-laola1at.html</link>
		<comments>http://fox21.at/1-jahr-laola1at.html#comments</comments>
		<pubDate>Wed, 10 Dec 2008 07:00:18 +0000</pubDate>
		<dc:creator>TheFox</dc:creator>
				<category><![CDATA[Sonstiges]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Laola1]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://fox21.at/?p=90</guid>
		<description><![CDATA[Auf den Tag genau bin ich jetzt bei LAOLA1.at. Viel hab ich dazu gelernt in dem einem Jahr. Vorallem das ich jetzt Perl kann, find ich am besten. Man lernt ja nie aus. Ich lerne Programmiersprachen meistens immer am schnellsten, &#8230; <a href="http://fox21.at/1-jahr-laola1at.html">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Auf den Tag genau bin ich jetzt bei <a target="_blank" href="http://www.laola1.at/" target="_blank">LAOLA1.at</a>. Viel hab ich dazu gelernt in dem einem Jahr. Vorallem das ich jetzt <a target="_blank" href="http://www.perl.org/" target="_blank">Perl</a> kann, find ich am besten. Man lernt ja nie aus. Ich lerne Programmiersprachen meistens immer am schnellsten, wenn ich sie auch fuer etwas nuetzliches einsetzten kann. Aber nicht nur Perl hab ich immer besser und besser kennen gelernt, sondern auch Java. Aber in Java hab ich schon laenger nichts mehr gemacht. Scriptsprachen sind mir ja doch irgendwie lieber, weil man sie nicht extra kompilieren braucht. Das spart Zeit. Und Hintergrundanwendungen sind mir <strong>noch</strong> lieber. Ich kann zwar mit <a target="_blank" href="http://www.php.net/" target="_blank">PHP</a> auch Webanwendungen schreiben, aber es geht nichts ueber ein Perl-Script, das im Hintergrund rennt. Wenn ich jetzt so im Nachhinein nach denke, faellt mir ein, dass ich mich vielleicht doch im Internet TheDaemosCreater nennen haette sollen. ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://fox21.at/1-jahr-laola1at.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mandelbrotbaeume</title>
		<link>http://fox21.at/mandelbrotbaeume.html</link>
		<comments>http://fox21.at/mandelbrotbaeume.html#comments</comments>
		<pubDate>Tue, 02 Dec 2008 13:37:11 +0000</pubDate>
		<dc:creator>TheFox</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[Bild]]></category>
		<category><![CDATA[Image::Imlib2]]></category>
		<category><![CDATA[Mandelbrot]]></category>
		<category><![CDATA[Spiel des Lebens]]></category>

		<guid isPermaLink="false">http://fox21.at/?p=100</guid>
		<description><![CDATA[Ich hab mir ein Perl-Script geschrieben, dass Mandelbrotbaeume berechnet und als Grafik (Bild rechts) darstellt. Mit der Mandelbrotfunktion lassen sich coole Bilder erzeugen. Das erinnert mich auch irgendwie an Das Spiel des Lebens. Mit dem hab ich mich auch einmal &#8230; <a href="http://fox21.at/mandelbrotbaeume.html">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a target="_blank" href="http://img.fox21.at/mandelbrot/mandelbrot_6144x4608_blue_depth255.png" target="_blank"><img class="alignright" title="Mandelbrot 320x240" src="http://img.fox21.at/mandelbrot/mandelbrot_320x240_blue_depth25.png" alt="" width="256" height="192" /></a>Ich hab mir ein <a target="_blank" href="http://software.fox21.at/mandelbrot/releases/mandelbrot.zip">Perl-Script</a> geschrieben, dass <a target="_blank" href="http://de.wikipedia.org/wiki/Mandelbrotmenge" target="_blank">Mandelbrotbaeume</a> berechnet und als Grafik (Bild rechts) darstellt. Mit der Mandelbrotfunktion lassen sich coole Bilder erzeugen. Das erinnert mich auch irgendwie an <a target="_blank" href="http://de.wikipedia.org/wiki/Conways_Spiel_des_Lebens" target="_blank">Das Spiel des Lebens</a>. Mit dem hab ich mich auch einmal eine Zeit lang beschaeftigt. Aber nie so wirklich selber ein Script geschrieben, dass das ausrechnet. Die Mandelbrotbaeume sind ziemlich komplex. Das faszinierende daran ist, dass sich die Aufloesung eines solchen Bildes ins Unendliche fortsetzen laesst. Das heisst, man kann das Bild vergroessern und vergroessern und immer wieder weiter vergroessern und man sieht jedes Mal eine andere Form. Ja, hat viel mit Mathematik zutun. Ich bin auch gerade dabei, ein Bild zu rendern, das 4096 x 3072 Pixel gross ist. Das hat dann ca. 50 MB. Aber das wird warscheinlich noch ein paar Tage brauchen, bis es fertig ist. Also was man mit einem <a target="_blank" href="/redsun-server.html">Server</a>, Perl und ein bisschen Zeit alles machen kann&#8230;</p>
<h2>Benoetigte Perl-Module</h2>
<ul>
<li><a target="_blank" href="http://search.cpan.org/dist/Image-Imlib2/" target="_blank">Image::Imlib2</a></li>
</ul>
<h2><strong>Download</strong></h2>
<ul>
<li><a target="_blank" href="http://software.fox21.at/mandelbrot/releases/mandelbrot.zip">mandelbrot.zip</a><a href="http://cms.fox21.at/wp-content/uploads/2008/12/mandelbrot.zip"> </a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://fox21.at/mandelbrotbaeume.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

