Marko Sollen: Perl und TCP/IP, UDP, ICMP etc.

Hi Leute,

kann man mit Activeperl (unter WinNT) eigene TCP, UDP etc. Pakete erstellen?

Ich hab leider nichts an Modulen gefunden die unter Win32 funtionieren :( (obwohl es sowas eigentlich geben _muss_)

thx!

Marko

--
Es ist nicht wichtig _viel_ zu wissen, man muss lediglich das _Richtige_ wissen.

  1. Hi,

    kann man mit Activeperl (unter WinNT) eigene TCP, UDP etc. Pakete erstellen?

    ja, siehe

    perldoc perlipc

    Cheatah

    1. Hi,

      ja, siehe

      perldoc perlipc

      Super das es geht, allerdings check ich nicht so ganz was genau du in 'perlipc' meinst.

      Gut da sind einige Socket-Funktionen beschrieben, aber ich habe nichts gefunden (zu blöd!?) wie man eigene Pakete erstellt. Ich habe mir das ungefähr so gedacht:

      Proto -> 'tcp',
      Size -> '1024'
      Data -> '0x48 0x48 0x48 0x48'
      Header -> 'head()'
      send()

      (nicht genau so, aber ich denke man versteht was ich meine).

      Wenn jemand vielleicht auch ein bisschen Sourcecode posten würde wäre absolut klasse!

      BTW: Gibt es in Perl eine Funktion (wie in C++) mit der man ASM Code einbinden kann (__ASM () )?

      thx!

      1. Hi,

        perldoc perlipc

        Super das es geht, allerdings check ich nicht so ganz was genau du in 'perlipc' meinst.

        ich meinte das gesamte Dokument :-)

        Gut da sind einige Socket-Funktionen beschrieben, aber ich habe nichts gefunden (zu blöd!?) wie man eigene Pakete erstellt.

        Ich muß gestehen, daß ich damit auch noch nicht gearbeitet habe. Allerdings hielt ich die Hinweise auf IO::Socket für ausreichend...

        Ich habe mir das ungefähr so gedacht:

        Oh, hat Dir etwa jemand erzählt, Networking sei einfach? :-)

        Wenn jemand vielleicht auch ein bisschen Sourcecode posten würde wäre absolut klasse!

        Sorry, aber da muß ich passen. Diesen Part überlasse ich jemandem, der es schon mal gemacht hat...

        BTW: Gibt es in Perl eine Funktion (wie in C++) mit der man ASM Code einbinden kann (__ASM () )?

        Das wäre wohl deutlich einfacher, wenn die Scripts kompiliert würden; was aber nicht der Fall ist. Es gibt aber genügend include- und exec-Mechanismen, daß Du bestimmt etwas passendes findest.

        Das hat dann übrigens auch den Vorteil, daß Dein Code besser auf andere Systeme portierbar ist. Man braucht nicht im Hauptcode rumzuhacken, sondern kompiliert eine einzelne Datei :-)

        Cheatah

        1. Hi,

          ich meinte das gesamte Dokument :-)

          ups :)

          Ich muß gestehen, daß ich damit auch noch nicht gearbeitet habe. Allerdings hielt ich die Hinweise auf IO::Socket für ausreichend...

          Hehe so ganz reicht es mir nicht. Sockets haben sicherlich was damit zu tun, aber wie man Pakete damit generieren soll bleibt mir ein Rätsel,

          Oh, hat Dir etwa jemand erzählt, Networking sei einfach? :-)

          Nicht direkt, aber die meisten Perlmodule sind doch in etwa so aufgebaut.

          Sorry, aber da muß ich passen. Diesen Part überlasse ich

          jemandem, der es schon mal gemacht hat...

          Gibt es so jemanden wenn du das nicht gemacht hast? Ich hab mal gehört du bist so ein Perl-Halbgott ;)

          Das wäre wohl deutlich einfacher, wenn die Scripts kompiliert würden; was aber nicht der Fall ist. Es gibt aber genügend include- und exec-Mechanismen, daß Du bestimmt etwas passendes findest.

          Werde noch mal suchen.

          my regards
          Marko Sollen

          1. Hallo

            Gibt es so jemanden wenn du das nicht gemacht hast?

            »»Ich hab mal gehört du bist so ein Perl-Halbgott ;)

            Tja, deshalb ja nur Halbgott und nicht (Ganz-)Gott. Sonst hätte er es Dir sicherlich erklärt. :-)

            Gruß
              Michael

            1. Hi,

              »»Ich hab mal gehört du bist so ein Perl-Halbgott ;)

              HUCH![tm]
              Also, das ist mir jetzt eigentlich neu... aber wenn Du willst, darfst Du mich natürlich gerne anbeten *g*

              Tja, deshalb ja nur Halbgott und nicht (Ganz-)Gott. Sonst hätte er es Dir sicherlich erklärt. :-)

              Es reicht auch, wenn Du mich halbtags anbetest ;-)

              Cheatah, Halbgott mit gründer Nase (s. http://cheatah.net/grf/cheatah01.jpg) ;-)

      2. Hallo,

        Wenn jemand vielleicht auch ein bisschen Sourcecode posten würde wäre absolut klasse!

        Also mit den low-level- socket funktionen is eigentlich das gleiche möglich, wie unter C. (Sind eigentlich auch direkt die Funktionen)
        in der angesprochenen Perldoc 'perlipc' sind auch beispiele drin für clients und server.

        Wenn Du eine Socketverbindug geöffnet hast, dann sprichts Du mit dem Socket über Filehandles. ist eigentlich ganz einfach. Die Beispiele sind recht klar.

        Wenn Du ein Buch darüber lesen willst:
        'Webclient programming with perl' von O'reilly.

        Im Camel-Book und Cookbook sind auch einige Beispiele drin, sind alle recht super.

        Für standard-Anwendungen (HTTP,FTP, TELNET,SMTP) ist das LWP-Bundle (ist eingentlich ein Bundle oder ??) die erste Wahl, weil da schon einiges ausprogrammiert wurde.
        Außerdem ist der Source sicherlich eine Quelle der Inspiration für eigenes.

        Viel spaß dabei
        Klaus

        BTW: ASM würde m.E. der Philosophie von Perl widersprechen.

        1. Hi,

          yep das hab ich auch alles gefunden (Sockets). Gut ich kann eine Socketverbindung zu einem Server herstellen und hab das Filehandle, aber _wie_ schicke ich nun ein selbst generiertes IP Paket dahin?

          Also wie erstelle ich es und wie sende ich es?

          mfg
          Marko Sollen

          1. HI,
            Einfach auf den Filehandle schreiben:
            [.... hier wird die Sochetverbindung geöffnet]

            print SOCKET $send_data;
            $get_data = <SOCKET>;
            print SOCKET $send_data;
            $get_data = <SOCKET>;
            [... uswusf...]

            Grüße
            Klaus