<?php
	if ($HTTP_SERVER_VARS["SERVER_NAME"] == "www.tzi.de") {
		// auf www.tzi.de funktionieren manche CGI-Skripte nicht
		header("Location: http://www.informatik.uni-bremen.de".$HTTP_SERVER_VARS["REQUEST_URI"]);
		exit();
	}
	$truexml = (basename($PHP_SELF) == "index.xml.php");
	if ($truexml)
		header("Content-Type: application/xhtml+xml");
	echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n";
	if ($truexml)
		echo "<?xml-stylesheet href=\"tools.css\" type=\"text/css\"?>\n";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>Greywolfs LAN-Party Tools</title>
<?php if ($truexml) { ?>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=iso-8859-1" />
<!-- You got the XML version of this file as your browser claims to prefer this format
over HTML in his Accept:-Header. If this was wrong and you e.g. got a download menu
instead of viewing this file then blame your browser ... -->
<?php } else { ?>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<?php } ?>
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Language" content="de" />
<meta name="MSSmartTagsPreventParsing" content="TRUE" />
<meta name="revisit-after" content="30 days" />
<meta name="author" content="Markus Wiesner" />
<meta name="generator" content="none (handwritten XHTML)" />
<?php if (! $truexml) { ?>
<link rel="stylesheet" type="text/css" href="tools.css" />
<?php } ?>
</head>
<body>
<p>
<img src="images/greywolf.png" width="200" height="118" alt="Greywolf (Ueberarbeitetes Bild aus MechWarrior)" />
</p>
<p>
Damit man auch mal sehen kann, wenn sich an den Dateien etwas geändert hat, hier eine
kleine Liste der Tools (vor allem für LAN-Parties), die ich bisher geschrieben hab:
</p>
<p>
Die Sachen laufen bei mir unter Linux (ehemals <a href="http://www.suse.de/">SuSE</a> Linux
6.2, mittlerweile <a href="http://www.slackware.org/">Slackware</a> 8.0, jeweils mit zig
manuellen Updates).
Andere UN*Xe sollten eigentlich auch kein Problem sein, sofern
<acronym title="Practical Extraction and Report Language">Perl</acronym> und die anderen
verwendeten Programme darunter laufen. (Mit Windows dürfte es wegen letzterem
eher schlecht aussehen ...)
</p>
<p>
All meine Programme dieser Seite sind unter der <a href="http://www.gnu.org/copyleft/gpl.html"><acronym title="Gnu's Not Unix">GNU</acronym> <acronym title="General Public License">GPL</acronym></a> verfügbar. Den tar-Archiven liegt diese bei, für die einfachen Skripte kann man sie sich <a href="COPYING">hier</a> runterladen.
</p>
<div class="project">
 <h2 class="heading"><span class="title"><acronym title="Greywolfs Server Database">GSDB</acronym> Webseite</span> <a href="/cgi-bin/cgiwrap/mwiesner/download/gsdb-0.9.0b.tar.gz"><img class="dl" src="images/greydisc.png" width="24" height="24" alt="[download]" /></a></h2>
 <table class="data">
  <tr>
   <td class="label">Version</td>
   <td class="ver">0.9.0b</td>
  </tr>
  <tr>
   <td class="label">letzte&#160;Änderung</td>
   <td class="date">17.9.2000</td>
  </tr>
  <tr>
   <td class="label">Änderungen</td>
   <td class="chng"><a href="ChangeLog.gsdb">ChangeLog</a></td>
  </tr>
 </table>
 <ul class="info">
  <li>Neueste Version der &#8220;FTP/SMB Search&#8221; Webseite mit diversen Verbesserungen und neuem Namen.</li>
  <li>Und <a href="/~mwiesner/gsdb/index.htm">hier</a> habe ich die Seite auch mal zur Vorschau installiert.</li>
  <li><a href="README.gsdb">README</a></li>
 </ul>
</div>
<div class="project">
 <h2 class="heading"><span class="title"><acronym title="File Transfer Protocol">FTP</acronym>/<acronym title="Server Message Block">SMB</acronym> Search Webseite</span> <a href="/cgi-bin/cgiwrap/mwiesner/download/ftpsearch-0.5.1b.tar.gz"><img class="dl" src="images/greydisc.png" width="24" height="24" alt="[download]" /></a></h2>
 <table class="data">
  <tr>
   <td class="label">Version</td>
   <td class="ver">0.5.1b</td>
  </tr>
  <tr>
   <td class="label">letzte&#160;Änderung</td>
   <td class="date">16.6.2000</td>
  </tr>
  <tr>
   <td class="label">Änderungen</td>
   <td class="chng"><a href="ChangeLog.ftpsearch">ChangeLog</a></td>
  </tr>
 </table>
 <ul class="info">
  <li><a href="README.ftpsearch">README</a></li>
 </ul>
</div>
<div class="project">
 <h2 class="heading"><span class="title"><acronym title="Dynamic Host Configuration Protocol">DHCP</acronym> Scan</span> <a href="/cgi-bin/cgiwrap/mwiesner/download/dhcpscan-0.4.tar.gz"><img class="dl" src="images/greydisc.png" width="24" height="24" alt="[download]" /></a></h2>
 <table class="data">
  <tr>
   <td class="label">Version</td>
   <td class="ver">0.4</td>
  </tr>
  <tr>
   <td class="label">letzte&#160;Änderung</td>
   <td class="date">1.6.2000</td>
  </tr>
  <tr>
   <td class="label">Änderungen</td>
   <td class="chng"><span style="font-style:italic;">n/a</span></td>
  </tr>
 </table>
 <ul class="info">
  <li><a href="README.dhcpscan">README</a></li>
  <li>Dazu &#8220;passend&#8221; noch <a href="/cgi-bin/cgiwrap/mwiesner/download/ics-dhcp.zip">zwei <tt>.reg</tt>-Dateien</a>, die den DHCP-Server des <acronym title="Internet Connection Sharing">ICS</acronym> von Win98SE/WinME/... ein- bzw. ausschalten (Nicht getestet. Erstellt anhand der Daten aus c't 19/2000)</li>
 </ul>
</div>
<div class="project">
 <h2 class="heading"><span class="title"><acronym title="Dynamic Host Configuration Protocol">DHCP</acronym> Scan (Perl)</span> <a href="/cgi-bin/cgiwrap/mwiesner/download/dhcpscan.pl"><img class="dl" src="images/greydisc.png" width="24" height="24" alt="[download]" /></a></h2>
 <table class="data">
  <tr>
   <td class="label">Version</td>
   <td class="ver">0.2.2</td>
  </tr>
  <tr>
   <td class="label">letzte&#160;Änderung</td>
   <td class="date">10.10.2001</td>
  </tr>
  <tr>
   <td class="label">Änderungen</td>
   <td><ul class="chng">
    <li>v0.1b &#8594; v0.2.1: manche Server (z.B. neue ISC DHCP Server) wurden nicht erkannt, da sie direkt an die angegebene (zufällig gewählte) MAC-Adresse antworten. Der Scanner gibt sich daher nun in einem weiteren Scan auch als DHCP Relay aus.</li>
    <li>v0.2.1 &#8594; v0.2.2: Bugfix bei <tt>--mac</tt> und <tt>--nmblookup</tt></li>
   </ul></td>
  </tr>
 </table>
 <ul class="info">
  <li>(empfohlene) Alternative zu obigen DHCP Scan, die in Perl realisiert ist und speziell für diese Aufgabe geschrieben wurde</li>
  <li>Benötigt <a href="http://www.tcpdump.org/release/libpcap-0.6.2.tar.gz">libpcap</a> und <a href="http://www.perl.com/CPAN/authors/id/S/SK/SKOLYCHEV/Net-RawIP-0.09d.tar.gz">Net::RawIP</a></li>
  <li>Optional (für weitere Funktionen): <a href="http://www.perl.com/CPAN/authors/id/GBARR/MailTools-1.15.tar.gz">Mail::Mailer</a>, <tt>arp</tt> und <a href="http://www.samba.org/">Samba</a></li>
 </ul>
</div>
<div class="project">
 <h2 class="heading"><span class="title"><acronym title="Server Message Block">SMB</acronym> Shares</span> <a href="/cgi-bin/cgiwrap/mwiesner/download/smbshares.pl"><img class="dl" src="images/greydisc.png" width="24" height="24" alt="[download]" /></a></h2>
 <table class="data">
  <tr>
   <td class="label">Version</td>
   <td class="ver"><span style="font-style:italic;">n/a</span></td>
  </tr>
  <tr>
   <td class="label">letzte&#160;Änderung</td>
   <td class="date">25.5.2000</td>
  </tr>
  <tr>
   <td class="label">Änderungen</td>
   <td class="chng"><span style="font-style:italic;">n/a</span></td>
  </tr>
 </table>
 <ul class="info">
  <li>Perlskript, das mit Hilfe von &#8220;nmblookup&#8221; und &#8220;smbclient&#8221; (von Samba) das Netzwerk nach SMB-Servern (Windows/Samba) durchsucht und diese zusammen mit ihren Freigaben auflistet</li>
  <li>(gekürzte Version des Skripts aus dem FTP/SMB-Search-Paket)</li>
 </ul>
</div>
<div class="project">
 <h2 class="heading"><span class="title"><acronym title="User Datagram Protocol">UDP</acronym> Forwarder</span> <a href="/cgi-bin/cgiwrap/mwiesner/download/udpfwd"><img class="dl" src="images/greydisc.png" width="24" height="24" alt="[download]" /></a></h2>
 <table class="data">
  <tr>
   <td class="label">Version</td>
   <td class="ver">0.2</td>
  </tr>
  <tr>
   <td class="label">letzte&#160;Änderung</td>
   <td class="date">26.9.2001</td>
  </tr>
  <tr>
   <td class="label">Änderungen</td>
   <td><ul class="chng">
    <li>v0.1 &#8594; v0.2: Rate Limit (gegen Loops/Flooding)</li>
   </ul></td>
  </tr>
 </table>
 <ul class="info">
  <li>Perlskript, das auf einem wählbaren UDP Port auf Pakete wartet und diese mit der Original-IP an ein oder mehrere andere IPs und/oder Ports weiterleitet.</li>
  <li>Benötigt <a href="http://www.tcpdump.org/release/libpcap-0.6.2.tar.gz">libpcap</a> und <a href="http://www.perl.com/CPAN/authors/id/S/SK/SKOLYCHEV/Net-RawIP-0.09d.tar.gz">Net::RawIP</a></li>
  <li>Nützlich bei Gameservern, die an eine IP gebunden sind, und daher die Broadcasts der Clients nicht empfangen können und folglich nicht in deren Serverliste auftauchen.</li>
  <li>Wer C-Programme bevorzugt, findet auf <a href="http://www.running-sheep.de/">www.running-sheep.de</a> das Tool &#8220;hlmsgfw&#8221; von [RS]Leo, das dasselbe macht, aber (momentan) auf Halflife beschränkt ist.</li>
 </ul>
</div>
<div class="line">
<hr />
</div>
<p>
Wem die Bandbreite einer Netzwerkkarte nicht mehr reicht und deshalb gerne zwei (oder noch mehr?!) Karten im gleichen Subnetz betreiben möchte (und das unter Linux), den interessiert vielleicht mein folgender Versuch, eine kleine HOWTO darüber zu erstellen. &#8220;Dank&#8221; Routingtabellen und <acronym title="Address Resolution Protocol">ARP</acronym> ist das ganze nämlich nicht ganz so einfach, wie man sich das vielleicht dachte. <img src="images/smile.png" width="15" height="15" alt=":-)" />
</p>
<div class="project">
 <h2 class="heading"><span class="title">Mini-HOWTO: Mehrere Netzwerkkarten im gleichen Subnetz unter Linux</span> <a href="howto-multinic.html"><img class="dl" src="images/greydisc.png" width="24" height="24" alt="[view]" /></a></h2>
 <table class="data">
  <tr>
   <td class="label">Version</td>
   <td class="ver">0.3</td>
  </tr>
  <tr>
   <td class="label">letzte&#160;Änderung</td>
   <td class="date">05.12.2001</td>
  </tr>
 </table>
</div>
<div class="project">
 <h2 class="heading"><span class="title">policyrouting</span> <a href="/cgi-bin/cgiwrap/mwiesner/download/policyrouting"><img class="dl" src="images/greydisc.png" width="24" height="24" alt="[download]" /></a></h2>
 <table class="data">
  <tr>
   <td class="label">Version</td>
   <td class="ver">0.1</td>
  </tr>
  <tr>
   <td class="label">letzte&#160;Änderung</td>
   <td class="date">9.1.2002</td>
  </tr>
  <tr>
   <td class="label">Änderungen</td>
   <td class="chng"><span style="font-style:italic;">n/a</span></td>
  </tr>
 </table>
 <ul class="info">
  <li>Shell-Skript zur (hoffentlich) automatischen Konfiguration des Policy Routing, wie in obiger Mini-HOWTO beschrieben</li>
  <li>Falls andere Interfaces als <tt>eth0</tt> und <tt>eth1</tt> verwendet werden, muss die Variable <tt>INTERFACES</tt> innerhalb des Skript angepasst werden</li>
  <li>Anschliessend einfach den Karten (manuell mit <tt>ifconfig</tt> oder automatisch von den Startskripten des Systems) die gewünschten IP-Adressen geben und das Skript mit Parameter &#8220;start&#8221; aufrufen</li>
  <li>Wenn alles geklappt hat, dann kann man das Skript mit in die Init-Skripte des Systems einbinden.</li>
  <li>Es werden die Parameter <tt>start</tt>, <tt>stop</tt> und <tt>restart</tt> unterstützt. Letzteres ist interessant, wenn die IPs manuell im Betrieb geändert wurden.</li>
 </ul>
</div>
<div class="line">
<hr />
</div>
<p>
Diese Seite ist übrigens auch (via Redirect) über <a href="http://tools.wiesner-net.de/">http://tools.wiesner-net.de/</a> zu erreichen. Aufbau und vor allem der Server der Homepage werden sich wohl nicht so schnell ändern, aber mit diesem Link sollte man auch im Fall der Fälle diese Seite direkt wiederfinden. <img src="images/smile.png" width="15" height="15" alt=":-)" />
</p>
<p>
Bei Fragen oder Problemen:
</p>
<p>
<img src="images/mailto.png" width="14" height="10" alt="" /> Mail (Privat): <a href="mailto&#58;markus&#64;wiesner-net.de">markus&#64;wiesner-net.de</a>
</p>
<p>
<img src="images/mailto.png" width="14" height="10" alt="" /> Mail (Uni): <a href="mailto&#58;mwiesner&#64;informatik.uni-bremen.de">mwiesner&#64;informatik.uni-bremen.de</a>
</p>
<p style="font-size:smaller">
(Bitte nur &#8220;Plain Text&#8221;-Mails. HTML landet automatisch im SPAM-Ordner, der nur alle paar Tage mal durchsucht wird ...)
</p>
<p>
<span style="font-style:italic;">Es ist untersagt, diese EMail-Adressen für Werbungszwecke zu missbrauchen.
Zuwiderhandlung hat, vorbehaltlich weiterer rechtlicher Schritte, auf jeden Fall eine Beschwerde bei der Abuse-Abteilung des Provider zur Folge.</span>
</p>
<table class="border">
<tr><th class="border" colspan="2"><acronym title="Pretty Good Privacy">PGP</acronym></th></tr>
<tr><td class="border">KeyID</td><td class="border">0x50F14CA1</td></tr>
<tr><td class="border">Mail</td><td class="border">Markus Wiesner &lt;markus&#64;wiesner-net.de&gt;</td></tr>
<tr><td class="border">Fingerprint</td><td class="border">EEF0 B90C 1940 0B01 D97C&#160; &#160;3441 13A0 2F8C 50F1 4CA1</td></tr>
<tr><td class="border">Get Public Key</td><td class="border"><a href="Markus%20Wiesner.asc">Markus Wiesner.asc</a></td></tr>
</table>
<p>
<span style="font-style:italic; font-weight:bold;">Markus &#8220;Greywolf&#8221; Wiesner</span>
</p>
<table><tr>
<td style="vertical-align:bottom; padding-left:5px; padding-right:5px;"><a href="http://validator.w3.org/check?uri=http%3A%2F%2Fwww.informatik.uni-bremen.de%2F%7Emwiesner%2F"><img src="images/valid-xhtml11.png" width="88" height="31" alt="Valid XHTML 1.1!" /></a></td>
<td style="vertical-align:bottom; padding-left:5px; padding-right:5px;"><a href="http://jigsaw.w3.org/css-validator/validator?uri=http%3A%2F%2Fwww.informatik.uni-bremen.de%2F%7Emwiesner%2F"><img src="images/vcss.png" width="88" height="31" alt="Valid CSS!" /></a></td>
<td style="vertical-align:bottom; padding-left:5px; padding-right:5px;"><a href="http://www.vim.org/"><img src="images/createdwithvim.png" width="90" height="36" alt="Created with Vim" /></a></td>
<td style="vertical-align:middle; padding-left:30px; padding-right:5px;"><a href="/cgi-bin/cgiwrap/mwiesner/statscnt.pl?user=Greywolf&amp;action=show"><img src="/cgi-bin/cgiwrap/mwiesner/statscnt.pl?user=Greywolf" alt="[Counter]" /></a></td>
<td style="vertical-align:middle;">Zugriffe seit dem 6.5.2001 <sup>(*)</sup></td>
</tr></table>
<p style="font-size:smaller;">
<sup>(*)</sup> der &#8220;obligatorische&#8221; alberne Zähler ist natürlich rein zu Testzwecken hier. <img src="images/wink.png" width="15" height="15" alt=";-)" /><br />
Immerhin selber geschrieben und mit einer kleinen Zusatzfunktion. Einfach mal raufklicken... <img src="images/smile.png" width="15" height="15" alt=":-)" />
</p>
<table style="width:100%"><tr>
<td style="font-style:italic;">Letzte Änderung: <?php
error_reporting(53); # ERROR, PARSE, CORE_ERROR, CORE_WARNING
setlocale("LC_TIME", "de_DE");
echo strftime("%c",filectime($HTTP_SERVER_VARS["PATH_TRANSLATED"]));
$handle = fopen("/home/mwiesner/log/tools.log","a+");
if ($handle) {
  flock($handle,2);
  $date = strftime("%a, %d %b %Y %H:%M");
  $ip = $REMOTE_HOST or $ip = $REMOTE_ADDR or $ip = "<unknown>";
  $from = $HTTP_SERVER_VARS["HTTP_REFERER"] or $from = $HTTP_REFERER or $from = "<unknown>";
  $agent = $HTTP_SERVER_VARS["HTTP_USER_AGENT"] or $agent = $HTTP_USER_AGENT or $agent = "<unknown>";
  fwrite($handle,sprintf("%s\t%s\t%s\t%s\n",$date,$ip,$from,$agent));
  fclose($handle);
}
?></td>
<td style="text-align:right; font-size:small;"><acronym title="Uniform Resource Locator">URL</acronym>: <a href="http://tools.wiesner-net.de/">http://tools.wiesner-net.de/</a></td>
</tr></table>
</body>
</html>
