<?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>tc77.com &#187; netcat</title>
	<atom:link href="http://www.tc77.com/tag/netcat/feed" rel="self" type="application/rss+xml" />
	<link>http://www.tc77.com</link>
	<description>Ein weiteres tolles WordPress-Blog</description>
	<lastBuildDate>Wed, 23 Jun 2010 10:49:11 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Einfacher Dateitransfer mit netcat</title>
		<link>http://www.tc77.com/einfacher-dateitransfer-mit-netcat;32</link>
		<comments>http://www.tc77.com/einfacher-dateitransfer-mit-netcat;32#comments</comments>
		<pubDate>Thu, 03 Sep 2009 00:54:20 +0000</pubDate>
		<dc:creator>tc77</dc:creator>
				<category><![CDATA[Technik]]></category>
		<category><![CDATA[Dateitransfer]]></category>
		<category><![CDATA[netcat]]></category>

		<guid isPermaLink="false">http://www.tc77.com/?p=32</guid>
		<description><![CDATA[Da sitze ich also im lokalen Netzwerk und möchte eigentlich nur die ein oder andere Datei zwischen den vorhandenen Gerätschaften austauschen. Kein Problem, wie man meinen sollte, aber zu meiner Linken steht ein Linux-Client, auf der Rechten ein Mac OS X-Client und mittendrin werkelt eine kleine SoHo Netzwerk-Festplatte von Phillips namens SPD8020. Die SPD8020 basiert [...]]]></description>
			<content:encoded><![CDATA[<p>Da sitze ich also im lokalen Netzwerk und möchte eigentlich nur die ein oder andere Datei zwischen den vorhandenen Gerätschaften austauschen. Kein Problem, wie man meinen sollte, aber zu meiner Linken steht ein Linux-Client, auf der Rechten ein Mac OS X-Client und mittendrin werkelt eine kleine SoHo Netzwerk-Festplatte von Phillips namens SPD8020. Die SPD8020 basiert auf einem abgespeckten Linux und einer Sammlung PHP-Skripte. Die Installation von FTP-, SMB- oder NFS-Servern erscheint mir zu aufwendig für den Transfer von ein paar Dateien.</p>
<p>Während der Linux- und Mac OS X-Client über ein vollwertiges Kommando-Arsenal verfügen steht auf der Netzwerk-Festplatte nur ein sehr eingeschränkter Befehlssatz zur Verfügung.</p>
<p>Die Lösung heisst wieder mal &#8220;netcat&#8221; und ermöglicht die Kommunikation zwischen zwei Geräten auf Basis des TCP- bzw. UDP-Protokolls.</p>
<h2>Push</h2>
<p>In dem als &#8220;Push&#8221; bezeichneten Verfahren baut der Sender eine Verbindung zum Empfänger auf. D.h. netcat wartet am Port 7800 auf eingehende Verbindungen und schreibt die empfangenen Daten in die Datei filename.out.</p>
<pre># Empfänger<br/>$ nc -l 7800 &gt; filename.out</pre>
<pre># Sender<br/>$ nc hostname 7800 &lt; filename.in</pre>
<h2>Pull</h2>
<p>In diesem Szenario baut der Empfänger eine Verbindung zum Sender auf. D.h. netcat bietet auf dem Port 7800 die Datei filename.out zum Transfer an und wartet auf eine Anfrage vom Empfänger.</p>
<pre># Sender<br/>$ nc -l -p 7800 &lt; filename.out</pre>
<pre># Empfänger<br/>$ nc -w 10 hostname 7800 &gt; filename.in</pre>
<h2>Push vs. Pull</h2>
<p>Was macht das nun für einen Unterschied, ob Push oder Pull?! Im lokalen Netzwerk unter den oben genannten Umständen wahrscheinlich keinen, aber in der freien Wildbahn im Schatten von Firwalls und Paketfiltern macht das durchaus einen Sinn.</p>
<p>Ein Szenario: Man sitzt im Büro und möchte gerne eine Datei von einem Rechner im Internet herunterladen. Leider lässt die Firewall des Büros keine eingehenden Verbindungen zu und sperrt diese. Ein &#8220;Push&#8221; ist demnach nicht möglich, da in diesem Falle der Rechner im Internet versuchen würde eine Verbindung zu dem Rechner im Büro aufzubauen. Es bleibt also nur noch die Möglichkeit des &#8220;Pull&#8221;, bei welchem der Rechner im Büro eine Verbindung zu dem im Internet aufbaut und sich die Datei &#8220;zieht&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tc77.com/einfacher-dateitransfer-mit-netcat;32/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>E-Mail-Versand an der Kommandozeile</title>
		<link>http://www.tc77.com/e-mail-versand-an-der-kommandozeile;50</link>
		<comments>http://www.tc77.com/e-mail-versand-an-der-kommandozeile;50#comments</comments>
		<pubDate>Thu, 04 Dec 2008 17:07:32 +0000</pubDate>
		<dc:creator>tc77</dc:creator>
				<category><![CDATA[Technik]]></category>
		<category><![CDATA[Mail]]></category>
		<category><![CDATA[netcat]]></category>
		<category><![CDATA[telnet]]></category>

		<guid isPermaLink="false">http://www.tc77.com/?p=50</guid>
		<description><![CDATA[Um eine E-mail über die Kommandozeile ins freie zu entlassen bieten sich verschiedene Möglichkeiten. netcat und telnet sind Deine Freunde.]]></description>
			<content:encoded><![CDATA[<p>Um eine E-mail über die Kommandozeile ins freie zu entlassen bieten sich verschiedene Möglichkeiten, welche ich kurz hier aufführen möchte.</p>
<p>Die simpelste Variante stellt eine Verbindung zum Mail-Server via telnet auf Port 25 dar:</p>
<pre>$ telnet mail.example.com 25</pre>
<p>Auf den meisten Systemen wird telnet aus vielfältigen Gründen allerdings nicht vorhanden sein, weshalb es noch die Möglichkeit zur Nutzung von netcat gibt.</p>
<pre>$ netcat -v mail.example.com 25</pre>
<p>Egal für welche Variante wir uns entscheiden sollten, der Ablauf sieht für beide folgendermaßen aus:</p>
<pre>Trying mail.example.com...
Connected to mail.example.com.
Escape character is '^]'.
220 mail.exmaple.com ESMTP</pre>
<p>Wir begrüßen den Mailserver mit <code>HELO client.exmaple.com</code>. Worauf uns der Mailserver mit <code>250 mail.example.com</code> willkommen heisst.</p>
<p>Anschließend teilen wir unserem dienstbaren Freund mit <code>MAIL FROM:&lt;janedoe@exmaple.com&gt;</code> mit von wem unsere E-Mail stammt. Als Bestätigung erhalten wir ein <code>250 ok</code>.</p>
<p>Nun teilen wir dem Mail-Server noch mit an wen wir unsere Post richten möchten: <code>RCPT TO:&lt;johndoe@example.com&gt;</code>. Falls der Empfänger dem Mail-Server genehm sein sollte erhalten wir wieder ein <code>250 ok</code>.</p>
<p>Nachdem wir die Formalitäten hinter uns gebracht haben geben wir unser Mitteilungsbedürfnis mit <code>DATA</code> preis. Gespannt meldet sich der Mail-Server mit einem <code>354 go ahead</code> zurück und wartet freudig auf unsere Nachricht:</p>
<pre>subject: Heyhoo
Hallo John!
Toll Dich kennengelernt zu haben.
Liebe Grüße
Jane
.</pre>
<p>Die Kenntnisnahme unserer Nachricht bekommen wir mit <code>250 ok 1229451861 qp 18424</code> vom Mail-Server quittiert, worauf wir uns mit einem <code>QUIT</code> verabschieden und von dannen ziehen.</p>
<p>Für die Verwendung in Shell-Skripten gibt es noch folgenden Schnipsel, welcher die o.g. Kommandos noch mal schön zusammenfasst.</p>
<pre>#!/usr/bin/env bash
netcat localhost 25 &lt;&lt; EOF
HELO client.example.com
MAIL FROM: &lt;janedoe@example.com&gt;
RCPT TO: &lt;johndoe@example.com&gt;
DATA
…
.
QUIT
EOF</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.tc77.com/e-mail-versand-an-der-kommandozeile;50/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
