Alain: den zahlen inhalt vom useragent zusammen zählen

Hallo,
Ich habe da ein problem und zwar folgendes:
Wie kann man die die zahlen vom user agent z.B.

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)

also so 4+6+5.1+1.1.4322=total zusammenfassen bzw. dann zusammenzählen?
Das perlscript soll einfach alle zahlen die im user_agent vorkommen zusammen zählen.
Muss man da noch was irgendwie zusammen splitten?
Oder gibts da irgendwo ein konkretes Beispiel?
Gruss vom
Alain

  1. Hallo,

    Hallo!

    Wie kann man die die zahlen vom user agent z.B.
    Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)
    also so 4+6+5.1+1.1.4322=total zusammenfassen bzw. dann zusammenzählen?

    Für was immer das auch gut sein soll :-)

    Nachdem ich mal denke, dass es Dir nur um's Prinzip geht und mir die Zahl "1.1.4322" auch nicht ganz geläufig ist, rechne ich mal jede einzelne Ziffer für sich allein mit ein.
    Dann hätte ich mit perl das so gelöst (bin aber kein Profi, also wer ne schönere Idee hat.. nur zu):

    $text = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)';
    @ziffern = $text =~ /\d/g;
    foreach(@ziffern){
     $quersumme += $_;
    }

    print "$quersumme";   # 29

    Gruss vom
    Alain

    Gruss vom Nick

    1. Hallo!

      Wie kann man die die zahlen vom user agent z.B.
      Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)
      also so 4+6+5.1+1.1.4322=total zusammenfassen bzw. dann zusammenzählen?

      Für was immer das auch gut sein soll :-)

      naja ein versuch?

      Nachdem ich mal denke, dass es Dir nur um's Prinzip geht und mir die Zahl "1.1.4322" auch nicht ganz geläufig ist, rechne ich mal jede einzelne Ziffer für sich allein mit ein.
      $text = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)';
      @ziffern = $text =~ /\d/g;
      foreach(@ziffern){
       $quersumme += $_;
      }

      print "$quersumme";   # 29

      hmmm,da stimmt was nicht mit dem += und $quersumme ist nicht definiert?
      ich hab es mal so probiert:
      my $agent =  $ENV{'HTTP_USER_AGENT'};
      my @ziffern = $agent =~ s/([0-9])/pack("C", hex($1))/g;
      foreach(@ziffern){
      @ziffern = '';
      }

      #weiss aber nicht wie ich die $1er zusammenzählen soll
      print "Ausgabe ist @ziffern  oder  $agent<br>\n";

      gibt nur dieses aus:
      Ausgabe ist oder Mozilla/pack("C", hex(4)).pack("C", hex(7)) [en] (Winpack("C", hex(9))pack("C", hex(8)); U)
      von einem useragent wie
      Mozilla/4.7 [en] (Win98; U)
      Gruss
      Alain

      1. Hi,

        hmmm,da stimmt was nicht mit dem += und $quersumme ist nicht definiert?

        perldoc -f my

        my @ziffern = $agent =~ s/([0-9])/pack("C", hex($1))/g;

        perldoc perlre, /e-Switch

        #weiss aber nicht wie ich die $1er zusammenzählen soll

        Mit einer while-Schleife?

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
  2. Hi,

    also so 4+6+5.1+1.1.4322=total zusammenfassen bzw. dann zusammenzählen?

    "1.1.4322" ist keine Zahl.

    Muss man da noch was irgendwie zusammen splitten?

    Du musst die Zahlen erkennen und herausziehen.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  3. Hi,

    also so 4+6+5.1+1.1.4322=total zusammenfassen bzw. dann zusammenzählen?

    my $quersumme=0;
    $_='Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)';

    while(m/(\d)/g){$quersumme+=$1;}

    print $quersumme;

    HTH

    Margin-Auto

    1. Hi,
      also so gefällts mir auch ohne zusammenzählen also:
      use strict;
      print "Content-type: text/html\n\n";
      my $agent =  $ENV{'HTTP_USER_AGENT'};
      #alle buchstaben raus
      $agent =~ s/[^0-9]//g;

      Laenge ermitteln

      my $anzahl = length($agent);
      print "anzahl ist $anzahl<br>\n";
      print "<a href="agent2.cgi"> agent </a><br>\n";
      exit;

      Der zweck der sache ist,
      ich möchte den user agent eindeutig erkennen,naja jedenfalls fast eindeutig ;-)
      Gruss
      Alain

      1. Hi,

        ich möchte den user agent eindeutig erkennen,naja jedenfalls fast eindeutig ;-)

        die Anzahl der darin vorkommenden Ziffern ist für Dich ein ausreichendes Kriterium? Hm ...

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Hi,

          ich möchte den user agent eindeutig erkennen,naja jedenfalls fast eindeutig ;-)

          die Anzahl der darin vorkommenden Ziffern ist für Dich ein ausreichendes Kriterium? Hm ...

          nö sorry -> falsch,ich meinte nicht den lenght vom agent sondern so
          print "Content-type: text/html\n\n";
          my $agent =  $ENV{'HTTP_USER_AGENT'};
          #alle buchstaben raus
          $agent =~ s/[^0-9]//g;
          print "anzahl ist $anzahl<br>\n";
          exit;

          also alle zahlen als ganze zahl
          Gruss
          Alain

          1. Hi,

            die Anzahl der darin vorkommenden Ziffern ist für Dich ein ausreichendes Kriterium? Hm ...
            nö sorry -> falsch,ich meinte nicht den lenght vom agent sondern so
            also alle zahlen als ganze zahl

            ach so. Warum nimmst Du eigentlich nicht einfach den User-Agent?

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
            1. Hi,

              ach so. Warum nimmst Du eigentlich nicht einfach den User-Agent?

              weil ich nur die zahlen vom UA brauche ;-) bzw. damit in perl arbeite um zu vergleichen alles klaro?
              Gruss
              Alain