Active TCP/IP Verbindungen?
Active TCP/IP Verbindungen?
am 10.08.2007 23:34:12 von Ferry Bolhar
Hallo,
gibt es eine Möglichkeit, von Perl aus die aktiven TCP/IP Verbindungen
des lokalen Systems (Prozess ID, lokaler Port, Remote Host, Remote
Port) abzufragen?
Ich würde es für W2000/W2003 brauchen; wenn es für Linux ebenfalls
eine (vielleicht sogar portable) Lösung gäbe, wäre es noch schöner.
Danke und LG,
Ferry
--
Re: Active TCP/IP Verbindungen?
am 11.08.2007 22:35:37 von hjp-usenet2
On 2007-08-10 21:34, Ferry Bolhar wrote:
> gibt es eine Möglichkeit, von Perl aus die aktiven TCP/IP Verbindungen
> des lokalen Systems (Prozess ID, lokaler Port, Remote Host, Remote
> Port) abzufragen?
>
> Ich würde es für W2000/W2003 brauchen; wenn es für Linux ebenfalls
> eine (vielleicht sogar portable) Lösung gäbe, wäre es noch schöner.
Unter Unix gibt es das Kommando "netstat", das alle offenen Verbindungen
ausgibt und dessen Output einigermaßen parsebar ist. Ich nehme an, dass
es das oder ein äquivalentes Kommando auch unter Windows gibt.
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: Active TCP/IP Verbindungen?
am 13.08.2007 14:11:02 von Ferry Bolhar
Peter J. Holzer:
> Unter Unix gibt es das Kommando "netstat", das alle offenen Verbindungen
> ausgibt und dessen Output einigermaen parsebar ist. Ich nehme an, dass
> es das oder ein quivalentes Kommando auch unter Windows gibt.
Ja, und das wäre eben interessant - ich habe dazu nichts gefunden.
"netstat" ist mir natürlich ein Begriff - allerdings ist da das Problem,
dass
es unterschiedliche "netstat"'s gibt mit unterschiedlichen Optionen und
unterschiedlichen Ausgabeformaten. Ich hatte gehofft, es gäbe vielleicht
ein Modul, das mittels DynaLoader C-Code bereitstellt, der die ent-
sprechenden Systemcalls aufruft (oder, in Ermangelung solcher, direkt
auf die jeweiligen Datenstrukturen zugreift).
Für W200x bin ich auf ein Modul namens Win32::IPHelp gestoßen, das
dass können soll - allerdings finde ich es im CPAN nicht.
Kennt jemand vielleicht eine Alternative?
Danke und schöne Grüße aus Wien,
Ferry
--
Ing Ferry Bolhar
Magistrat der Stadt Wien - MA 14
A-1010 Wien
E-Mail: bol@adv.magwien.gv.at
Re: Active TCP/IP Verbindungen?
am 13.08.2007 14:39:01 von Christian Winter
Ferry Bolhar schrieb:
> Peter J. Holzer:
>
>> Unter Unix gibt es das Kommando "netstat", das alle offenen Verbindungen
>> ausgibt und dessen Output einigermaen parsebar ist. Ich nehme an, dass
>> es das oder ein quivalentes Kommando auch unter Windows gibt.
>
> Ja, und das wäre eben interessant - ich habe dazu nichts gefunden.
>
> "netstat" ist mir natürlich ein Begriff - allerdings ist da das Problem,
> dass
> es unterschiedliche "netstat"'s gibt mit unterschiedlichen Optionen und
> unterschiedlichen Ausgabeformaten. Ich hatte gehofft, es gäbe vielleicht
> ein Modul, das mittels DynaLoader C-Code bereitstellt, der die ent-
> sprechenden Systemcalls aufruft (oder, in Ermangelung solcher, direkt
> auf die jeweiligen Datenstrukturen zugreift).
>
> Für W200x bin ich auf ein Modul namens Win32::IPHelp gestoßen, das
> dass können soll - allerdings finde ich es im CPAN nicht.
>
> Kennt jemand vielleicht eine Alternative?
Win32::IPHelper
http://search.cpan.org/~lmasara/Win32-IPHelper-0.05/IPHelper .pm
Viele Grüße
-Christian
Re: Active TCP/IP Verbindungen?
am 13.08.2007 23:36:18 von hjp-usenet2
On 2007-08-13 12:11, Ferry Bolhar wrote:
> Peter J. Holzer:
>> Unter Unix gibt es das Kommando "netstat", das alle offenen Verbindungen
>> ausgibt und dessen Output einigermaen parsebar ist. Ich nehme an, dass
>> es das oder ein quivalentes Kommando auch unter Windows gibt.
>
> Ja, und das wäre eben interessant - ich habe dazu nichts gefunden.
>
> "netstat" ist mir natürlich ein Begriff - allerdings ist da das
> Problem, dass es unterschiedliche "netstat"'s gibt mit
> unterschiedlichen Optionen und unterschiedlichen Ausgabeformaten. Ich
> hatte gehofft, es gäbe vielleicht ein Modul, das mittels DynaLoader
> C-Code bereitstellt, der die ent- sprechenden Systemcalls aufruft
> (oder, in Ermangelung solcher, direkt auf die jeweiligen
> Datenstrukturen zugreift).
Das geht unter Unix im Allgemeinen nicht, weil es keine Syscalls gibt,
die diese Informationen zur Verfügung stellen. Netstat ist (wie auch ps
und ähnliche Tools) ein set(u|g)id-Programm, das direkt im Memory
herumwurschtelt und sich die Informationen aus Kernel-Datenstrukturen
zusammenklaubt. Ein Perl-Script, das eine entsprechende Library
verwenden würde, müsste selbst set(u|g)id sein.
(Linux stellt die Infos über /proc zur Verfügung, das kann ein
beliebiges Script genauso wie netstat lesen)
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: Active TCP/IP Verbindungen?
am 14.08.2007 09:50:04 von Ferry Bolhar
Peter J. Holzer:
> Das geht unter Unix im Allgemeinen nicht, weil es keine Syscalls gibt,
> die diese Informationen zur Verf gung stellen. Netstat ist (wie auch ps
> und hnliche Tools) ein set(u|g)id-Programm, das direkt im Memory
> herumwurschtelt und sich die Informationen aus Kernel-Datenstrukturen
> zusammenklaubt.
Also zumindest unter Red Hat ES 3 und 4 sind weder netstat noch ps
setuid-Programme. Möglicherweise eben, weil sie ihre Informationen
aus /proc auch ohne setuid holen können. Wahrscheinlich gibt es auch
Versionen für Systeme ohne /proc (oder mit einem /proc, das diese
Informationen nicht bereitstellt); die müssen dann entsprechend kompiliert
werden und benötigen auch setuid.
> Ein Perl-Script, das eine entsprechende Library
> verwenden w rde, msste selbst set(u|g)id sein.
>
> (Linux stellt die Infos ber /proc zur Verfgung, das kann ein
> beliebiges Script genauso wie netstat lesen)
Vermutlich findet man unter Linux in /proc/net das Gewünschte (wenn
man sich nur lange genug damit beschäftigt). Aber dann bleiben immer
noch die anderen UNIX-Derivate, die ich unterstützen müsste (AIX,
Tru64, FreeBSD). Ich glaube, ich geb's auf. Naiv, wie ich bin, hatte
ich gedacht, es gäbe bereits ein plattformübergreifende, generelle,
benutzerfreundliche Lösung in Form eines netten Perl-Moduls. Naja,
jetzt verstehe ich immerhin, warum es die noch nicht gibt.
PS: Win32::IPHelper läßt sich bei mir weder unter W2000 noch
unter W2003 installieren - es verlangt zunächst Win32::API, und
bei dessen Installation kommt dann:
Running make test
test -- NOT OK
Runnig make install
make test had returned bad status, won't install without force
und das war's. Schlechten Tag erwischt...
LG, Ferry
--
Ing Ferry Bolhar
Magistrat der Stadt Wien - MA 14
A-1010 Wien
E-Mail: bol@adv.magwien.gv.at
Re: Active TCP/IP Verbindungen?
am 14.08.2007 12:05:07 von Martin Kustermann
Hi!
Ferry Bolhar schrieb:
> Hallo,
>
> gibt es eine Möglichkeit, von Perl aus die aktiven TCP/IP Verbindungen
> des lokalen Systems (Prozess ID, lokaler Port, Remote Host, Remote
> Port) abzufragen?
>
> Ich würde es für W2000/W2003 brauchen; wenn es für Linux ebenfalls
> eine (vielleicht sogar portable) Lösung gäbe, wäre es noch schöner.
>
> Danke und LG,
>
> Ferry
Also unter Linux und vielleicht auch unter anderen UNIXen (die haben ja
schließlich auch das /proc Dateisystem) findet sich im Verzeichnis
'/proc/net/' zu den jeweiligen Sockettypen eine Datei:
fuer TCP-Verbindungen z.B. /proc/net/tcp
mfg
Martin
Re: Active TCP/IP Verbindungen?
am 14.08.2007 12:40:13 von Martin Werthmoeller
Ferry Bolhar meinte:
> Peter J. Holzer:
>
Hallo Peter,
>> Unter Unix gibt es das Kommando "netstat", das alle offenen Verbindungen
>> ausgibt und dessen Output einigermaen parsebar ist. Ich nehme an, dass
>> es das oder ein quivalentes Kommando auch unter Windows gibt.
>
> Ja, und das wäre eben interessant - ich habe dazu nichts gefunden.
>
> "netstat" ist mir natürlich ein Begriff - allerdings ist da das Problem,
> dass
> es unterschiedliche "netstat"'s gibt mit unterschiedlichen Optionen und
> unterschiedlichen Ausgabeformaten.
>
lsof(8) ist auf etliche Unix-Plattformen portiert. Dort duerfte das
Ausgabeformat jeweils identisch sein.
Lsof bietet auch einen Schalter mit dem der Output fuer die einfache
Weiterverarbeitung mit anderen Programmen formatiert werden kann.
Gruss,
martin!
Re: Active TCP/IP Verbindungen?
am 14.08.2007 17:42:05 von Ferry Bolhar
Martin Kustermann:
> Also unter Linux und vielleicht auch unter anderen UNIXen (die haben ja
> schließlich auch das /proc Dateisystem) findet sich im Verzeichnis
> '/proc/net/' zu den jeweiligen Sockettypen eine Datei:
>
> fuer TCP-Verbindungen z.B. /proc/net/tcp
/proc haben (fast) alle (AIX V4.3.3 hat es nicht), aber ein
Unterverzeichnis /proc/net gibt es z.B. unter AIX V5 und
Tru64 nicht. Dort gibt es nur die Unterverzeichnisse, deren
Namen die Nummern der gerade aktiven Prozesse wieder-
geben.
Aber danke, der Tipp mit /proc/net/tcp (und udp) ist gut.
Zumindest für Linux hilft mir das schon mal weiter.
LG, Ferry
--
Ing Ferry Bolhar
Magistrat der Stadt Wien - MA 14
A-1010 Wien
E-Mail: bol@adv.magwien.gv.at
Re: Active TCP/IP Verbindungen?
am 14.08.2007 17:49:56 von Ferry Bolhar
"Martin Werthmoeller":
> Lsof bietet auch einen Schalter mit dem der Output fuer die einfache
> Weiterverarbeitung mit anderen Programmen formatiert werden kann.
Und mit welchem/n Schalter(n) sehe ich aktive IP-Verbindungen?
LG, Ferry
--
Ing Ferry Bolhar
Magistrat der Stadt Wien - MA 14
A-1010 Wien
E-Mail: bol@adv.magwien.gv.at
Re: Active TCP/IP Verbindungen?
am 20.08.2007 12:04:27 von Reinhard Pagitsch
Ferry Bolhar wrote:
> Peter J. Holzer:
>=20
>> Das geht unter Unix im Allgemeinen nicht, weil es keine Syscalls gibt,=
>> die diese Informationen zur Verf gung stellen. Netstat ist (wie auch p=
s
>> und hnliche Tools) ein set(u|g)id-Programm, das direkt im Memory
>> herumwurschtelt und sich die Informationen aus Kernel-Datenstrukturen
>> zusammenklaubt.
>=20
> Also zumindest unter Red Hat ES 3 und 4 sind weder netstat noch ps
> setuid-Programme. Möglicherweise eben, weil sie ihre Informationen
> aus /proc auch ohne setuid holen können. Wahrscheinlich gibt es auch
> Versionen für Systeme ohne /proc (oder mit einem /proc, das diese
> Informationen nicht bereitstellt); die müssen dann entsprechend kompi=
liert
> werden und benötigen auch setuid.
>=20
>> Ein Perl-Script, das eine entsprechende Library
>> verwenden w rde, msste selbst set(u|g)id sein.
>>
>> (Linux stellt die Infos ber /proc zur Verfgung, das kann ein
>> beliebiges Script genauso wie netstat lesen)
>=20
> Vermutlich findet man unter Linux in /proc/net das Gewünschte (wenn
> man sich nur lange genug damit beschäftigt). Aber dann bleiben immer
> noch die anderen UNIX-Derivate, die ich unterstützen müsste (AIX,
> Tru64, FreeBSD). Ich glaube, ich geb's auf. Naiv, wie ich bin, hatte
> ich gedacht, es gäbe bereits ein plattformübergreifende, generelle,=
> benutzerfreundliche Lösung in Form eines netten Perl-Moduls. Naja,
> jetzt verstehe ich immerhin, warum es die noch nicht gibt.
>=20
> PS: Win32::IPHelper läßt sich bei mir weder unter W2000 noch
> unter W2003 installieren - es verlangt zunächst Win32::API, und
> bei dessen Installation kommt dann:
>=20
> Running make test
> test -- NOT OK
> Runnig make install
> make test had returned bad status, won't install without force
>=20
> und das war's. Schlechten Tag erwischt...
Warum holst Du Dir das PPM packages nicht von=20
http://cpan.uwinnipeg.ca/dist/Win32-API?
Und das Modul Win32-IPHelper (PPM package) findest Du unter=20
http://trouchelle.com/perl/ppmrepview.pl?l=3DW
Grüße,
Reinhard
P.S: netstat gibts auch unter Windows (netstat -?).
>=20
> LG, Ferry
>=20
--=20
PM Mails an rpirpag gmx dot at
Re: Active TCP/IP Verbindungen?
am 22.08.2007 17:44:04 von Martin Werthmoeller
Ferry Bolhar meinte:
>
>> Lsof bietet auch einen Schalter mit dem der Output fuer die einfache
>> Weiterverarbeitung mit anderen Programmen formatiert werden kann.
>
> Und mit welchem/n Schalter(n) sehe ich aktive IP-Verbindungen?
>
man lsof ;-)
lsof -i
Die man-Page ist recht umfangreich. In der Sektion "OUTPUT FOR OTHER
PROGRAMS" koennten eventuell auch noch interessante Informationen zu
finden sein.
Viele Gruesse,
martin!
Re: Active TCP/IP Verbindungen?
am 24.08.2007 19:39:37 von Slaven Rezic
"Ferry Bolhar" writes:
> Peter J. Holzer:
>
> > Das geht unter Unix im Allgemeinen nicht, weil es keine Syscalls gibt,
> > die diese Informationen zur Verf gung stellen. Netstat ist (wie auch ps
> > und hnliche Tools) ein set(u|g)id-Programm, das direkt im Memory
> > herumwurschtelt und sich die Informationen aus Kernel-Datenstrukturen
> > zusammenklaubt.
>
> Also zumindest unter Red Hat ES 3 und 4 sind weder netstat noch ps
> setuid-Programme. Möglicherweise eben, weil sie ihre Informationen
> aus /proc auch ohne setuid holen können. Wahrscheinlich gibt es auch
> Versionen für Systeme ohne /proc (oder mit einem /proc, das diese
> Informationen nicht bereitstellt); die müssen dann entsprechend kompiliert
> werden und benötigen auch setuid.
>
> > Ein Perl-Script, das eine entsprechende Library
> > verwenden w rde, msste selbst set(u|g)id sein.
> >
> > (Linux stellt die Infos ber /proc zur Verfgung, das kann ein
> > beliebiges Script genauso wie netstat lesen)
>
> Vermutlich findet man unter Linux in /proc/net das Gewünschte (wenn
> man sich nur lange genug damit beschäftigt). Aber dann bleiben immer
> noch die anderen UNIX-Derivate, die ich unterstützen müsste (AIX,
> Tru64, FreeBSD). Ich glaube, ich geb's auf. Naiv, wie ich bin, hatte
> ich gedacht, es gäbe bereits ein plattformübergreifende, generelle,
> benutzerfreundliche Lösung in Form eines netten Perl-Moduls. Naja,
> jetzt verstehe ich immerhin, warum es die noch nicht gibt.
Wie wäre es mit Net::Netstat::Wrapper?
Gruß,
Slaven
--
Slaven Rezic - slaven rezic de
Visualize XML files in a Tk text widget:
http://search.cpan.org/search?mode=module&query=Tk::XMLViewe r
Re: Active TCP/IP Verbindungen?
am 29.08.2007 14:47:20 von Ferry Bolhar
Slaven Rezic:
> Wie wäre es mit Net::Netstat::Wrapper?
Ja, ganz nett. Parst aber nur die Ausgabe von netstat und hat daher
Probleme, wenn diese - wie in deutschen Windows-Versionen
üblich - unter Verwendung deutscher Worte (z.B. "ABHÖREN"
statt "LISTEN") erfolgt.
LG, Ferry
--
Ing Ferry Bolhar
Magistrat der Stadt Wien - MA 14
A-1010 Wien
E-Mail: bol@adv.magwien.gv.at
Re: Active TCP/IP Verbindungen?
am 30.08.2007 23:12:09 von Slaven Rezic
"Ferry Bolhar" writes:
> Slaven Rezic:
>
> > Wie wäre es mit Net::Netstat::Wrapper?
>
> Ja, ganz nett. Parst aber nur die Ausgabe von netstat und hat daher
> Probleme, wenn diese - wie in deutschen Windows-Versionen
> üblich - unter Verwendung deutscher Worte (z.B. "ABHÖREN"
> statt "LISTEN") erfolgt.
>
Unter Unix löst man dieses Problem typischerweise mit env LANG=C.
Vielleicht geht es sogar unter Windows.
--
Slaven Rezic - slaven rezic de
tkrevdiff - graphical display of diffs between revisions (RCS, CVS or SVN)
http://ptktools.sourceforge.net/#tkrevdiff
Re: Active TCP/IP Verbindungen?
am 03.09.2007 12:19:04 von Ferry Bolhar
Slaven Rezic:
> Unter Unix löst man dieses Problem typischerweise mit env LANG=C.
> Vielleicht geht es sogar unter Windows.
Ja, vielleicht. So wie du vorgeschlagen hast, leider nicht (jedenfalls
nicht unter W2000; W2003 habe ich noch nicht probiert).
Aber es ist ja kein Problem, das Modul entsprechend anzupassen.
Danke & LG,
Ferry
--
Ing Ferry Bolhar
Magistrat der Stadt Wien - MA 14
A-1010 Wien
E-Mail: bol@adv.magwien.gv.at