TCP Port testen

TCP Port testen

am 03.09.2007 16:37:50 von Ferry Bolhar

Hallo,

gibt es eine (möglichst einfache) Lösung, festzustellen,
ob irgendetwas an einem bestimmten TCP Port "lauscht",
ohne tatsächlich Daten auszutauschen?

LG, Ferry

--
Ing Ferry Bolhar
Magistrat der Stadt Wien - MA 14
A-1010 Wien
E-Mail: bol@adv.magwien.gv.at

Re: TCP Port testen

am 03.09.2007 16:49:55 von Moritz Lenz

Hallo,

Ferry Bolhar wrote:
> gibt es eine (möglichst einfache) Lösung, festzustellen,
> ob irgendetwas an einem bestimmten TCP Port "lauscht",

Klar, mit Net::Ping

> ohne tatsächlich Daten auszutauschen?

Als ein SYN TCP-Paket muss schon an den Server geschickt werden.

Grüße,
Moritz

--=20
Moritz Lenz
http://perl-6.de/ http://moritz.faui2k3.org/

Re: TCP Port testen

am 03.09.2007 19:06:45 von Ferry Bolhar

Moritz Lenz:

>> gibt es eine (möglichst einfache) Lösung, festzustellen,
>> ob irgendetwas an einem bestimmten TCP Port "lauscht",
>
> Klar, mit Net::Ping

Ja. Ich hätte nur die Manpage _ganz_ lesen müssen... :-(

> ohne tatsächlich Daten auszutauschen?
>
> Als ein SYN TCP-Paket muss schon an den Server geschickt werden.

Es muss kein SYN-Paket sein. Man muss Net::Ping nur mittels

my $p = new Net::Ping;
$p->service_check(1);

klar machen, dass der Returnstatus ECONNREFUSED _nicht_
als OK anzusehen ist. Dann liefert

$p->ping($host)

nur OK (1) zurück, wenn irgendein Daemon auf dem angegebenen
Port (den man eigenartigerweise mittels

$p->{'port_num'} = $port;

direkt setzen muss, es gibt keine Methode dafür) ein listen()
aufgesetzt hat.

Danke für die Hilfe und sorry für die Frage!

LG, Ferry

--
Ing Ferry Bolhar
Magistrat der Stadt Wien - MA 14
A-1010 Wien
E-Mail: bol@adv.magwien.gv.at

Re: TCP Port testen

am 03.09.2007 22:56:07 von hjp-usenet2

On 2007-09-03 17:06, Ferry Bolhar wrote:
> Moritz Lenz:
>
>>> gibt es eine (möglichst einfache) Lösung, festzustellen,
>>> ob irgendetwas an einem bestimmten TCP Port "lauscht",
>>
>> Klar, mit Net::Ping
>
> Ja. Ich hätte nur die Manpage _ganz_ lesen müssen... :-(
>
>> ohne tatsächlich Daten auszutauschen?
>>
>> Als ein SYN TCP-Paket muss schon an den Server geschickt werden.
>
> Es muss kein SYN-Paket sein.

Stimmt, aber alles andere ist sehr trickreich.

> Man muss Net::Ping nur mittels
>
> my $p = new Net::Ping;
> $p->service_check(1);
>
> klar machen, dass der Returnstatus ECONNREFUSED _nicht_
> als OK anzusehen ist. Dann liefert
>
> $p->ping($host)

Das schickt aber auch ein SYN Paket.

hp

--
_ | Peter J. Holzer | I know I'd be respectful of a pirate
|_|_) | Sysadmin WSR | with an emu on his shoulder.
| | | hjp@hjp.at |
__/ | http://www.hjp.at/ | -- Sam in "Freefall"

Re: TCP Port testen

am 04.09.2007 11:17:55 von Ferry Bolhar

Peter J. Holzer:

>> $p->ping($host)
>
> Das schickt aber auch ein SYN Paket.

OK, das habe ich mit dem 'proto'-Parameter der new() Methode
von Net::Ping verwechselt, die ich auf 'tcp' und nicht auf 'syn' gesetzt
habe. 'syn' bedeutet hier, Pakete asynchron an mehrere Rechner
hintereinander zu verschicken und dann mittels der acc()-Methode
auf das Eintrudeln der Antworten zu warten. Natürlich schickt aber
auch 'tcp' ein SYN-Paket.

Danke nochmals und LG,

Ferry

--
Ing Ferry Bolhar
Magistrat der Stadt Wien - MA 14
A-1010 Wien
E-Mail: bol@adv.magwien.gv.at

Re: TCP Port testen

am 11.09.2007 16:21:10 von das-mehdorn

Hallo!

Ferry Bolhar :

> gibt es eine (möglichst einfache) Lösung, festzustellen,
> ob irgendetwas an einem bestimmten TCP Port "lauscht",
> ohne tatsächlich Daten auszutauschen?

Ein Nachtrag:

Falls es sich um den lokalen Rechner handelt, auf dem also auch das
Script läuft, findet man es auch über das Kommando "netstat" heraus.
Falls es plattformunabhängig sein soll, gibt es dazu bestimmt auch ein
nettes Modul.

Christoph

--
Pretty nearly any stroke of fate can be made to look like a funny
coincidence if you try hard enough and wait long enough.
(John Wyndham, The Day of the Triffids)