Re: kleines netzwerk tool

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Wed, 24 Jan 2007 14:04:01 +0100 (CET)

Marian Hettwer wrote:
> ich bin grade auf der Suche nach einem kleinen Tool welches ich
> einsetzen kann, um zum Beispiel einen connect auf einen Apachen zu
> machen, einen Request abzusetzen, aber dann die entsprechenden
> Rückgabewerte des apachen zu ignorieren.
> Im speziellen Fall möchte ich einen beliebigen String dem apachen vor
> die füße werfen und dann aber ignorieren, daß er die Verbindung beenden
> möchte. Sprich die FIN's ignorieren.

Ein fertiges Tool dafür kenne ich nicht, aber man kann das
trivial selber schreiben. In Python wären das folgende
Zeilen (z.B. als "connect-test" speichern, chmod 755, und
dann mit "./connect-test" aufrufen):

================== Schnippel ==================
#!/usr/bin/env python

import socket, time

sock = socket.socket()
sock.connect(("www.deinedomain.de", 80))
sock.send("FOOBAR\n\n")

while True:
    data = sock.recv(4096)
    if data:
        print data
    else:
        break

time.sleep(3600)
================== Schnippel ==================

Das "sleep" am Schluss ist notwendig, damit sich das Skript
nicht sofort beendet, denn dann würde der Kernel automa-
tisch den Socket schliessen.

Wenn ich das bei mir auf einen lokalen Webserver starte,
sehe ich die halboffene Verbindung wie folgt im netstat:

tcp4 0 0 127.0.0.1.80 127.0.0.1.62927 FIN_WAIT_2
tcp4 0 0 127.0.0.1.62927 127.0.0.1.80 CLOSE_WAIT

Die erste Zeile (FIN_WAIT_2) gehört zum Server-Socket und
bedeutet, dass er ein FIN geschickt hat (und dies auch vom
TCP/IP-Stack des Clients per ACK bestätigt bekommen hat),
aber noch kein FIN vom Client bekommen hat. Die zweite
Zeile (CLOSE_WAIT) zeigt den entsprechenden Status aus
Sicht des Clients.

Die while-Schleife kannst Du theoretisch auch weglassen,
so dass die Antwort des Servers gar nicht gelesen wird.
Die Daten bleiben dann in der Receive-Queue, wie man der
zweiten Spalte von netstat entnehmen kann:

tcp4 0 0 127.0.0.1.80 127.0.0.1.53518 FIN_WAIT_2
tcp4 8432 0 127.0.0.1.53518 127.0.0.1.80 CLOSE_WAIT

Gruß
   Olli

-- 
Oliver Fromme,  secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing
Dienstleistungen mit Schwerpunkt FreeBSD: http://www.secnetix.de/bsd
Any opinions expressed in this message may be personal to the author
and may not necessarily reflect the opinions of secnetix in any way.
"C is quirky, flawed, and an enormous success."
        -- Dennis M. Ritchie.
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Wed 24 Jan 2007 - 14:05:33 CET

search this site