den zahlen inhalt vom useragent zusammen zählen
Alain
- perl
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
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
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
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
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
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
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;
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
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
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
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
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