IP's eingrenzen bsp. 80.128.0.0 - 80.146.159.255
Alain
- perl
guten morgen, Ich wollte mal fragen ob es möglich wäre die ip's nach dieser methode 80.128.0.0 bis 80.146.159.255... zu definieren in perl,als alle ips einzeln zu definieren? Wenn ja wie?Aber nicht mit split oder?
Grüsse vom Alain-- ...nichts ist so schlecht, als daß es nicht für irgend etwas gut wäre
Hallo,
1. In welchem Zusammenhang willst Du sie begrenzen?
2. Bist Du sicher das Du über so viele Subnetze springen willst?
Gruß Jan
hallo,
In welchem Zusammenhang willst Du sie begrenzen?
Bist Du sicher das Du über so viele Subnetze springen willst?
ja weil sich um diese ips um t-online handelt,die ja angeblich eine statische ip haben. Was ich auch noch versuchen möchte ist den user_agent bei einer laufenden sitzung von einem user erkennen,ob der sich in der einen sitzung verändert oder nicht. Wie kann ich einen user_agent im scalar speichern? Es handelt sich um ein cgi-perl-script das einfach den remonte_user checkt ob der seinen browser_agenten ändert in der ein und der selben sitzung auf einem geschützten unix-verzeichniss. Grüsse vom Alain
Hm,
dann lass die Überprüfung doch logisch ablaufen und checke jeden Bereich der IP einzeln auf seine Gültigkeit. - Sollte ohne weiteres möglich sein.
Zu 2.:
$scalarname = $ENV{'HTTP_USER_AGENT'};
Gruß Jan
hallo danke,
Zu 2.: $scalarname = $ENV{'HTTP_USER_AGENT'};
das ist mir schon bekannt ABER: ich muss den remonte-user einbeziehen und dann ermitteln ob beim nächsten aufruf des scriptes was am /$ENV{'REMOTE_USER'}/$ENV{'HTTP_USER_AGENT'}/ geändert wurde. müsste in etwa so gehen?
$ok = 0; $ok = /$ENV{'REMOTE_USER'}/$ENV{'HTTP_USER_AGENT'}/ ? $ok = $ok +1 : $ok = $ok;
if ($ok >= 1)
{ bad user(); }
Könnte das so gehen? Grüsse vom Alain
hallo,
$ok = 0; $ok = /$ENV{'REMOTE_USER'}/$ENV{'HTTP_USER_AGENT'}/ ? $ok = $ok : $ok = $ok +1;
if ($ok >= 1)
{ bad user(); }
ok so gehts wohl nicht :( mein server meldet 500 error und spuckt folgendes aus:
syntax error at test.cgi line 26, near "/$username/$agent" Search pattern not terminated at test.cgi line 26. [Mon Mar 17 09:02:18 2003] [error] [client 62.2.20.4] Premature end of script headers: /home/var/www/geschützt/test.cgi Scalar found where operator expected at test.cgi line 26, near "/$username/$agent" (Missing operator before $agent?)
Grüsse vom Alain
Moin!
Ich wollte mal fragen ob es möglich wäre die ip's nach dieser methode
80.128.0.0 bis 80.146.159.255... zu definieren in perl,als alle ips einzeln
zu definieren?
Wandel die vier Teile einfach in eine einzige 32-Bit-Zahl um. Die sogenannte 'dotted decimal notation' ist ohnehin nur eine besondere Schreibweise fuer eine solche Zahl. Hast Du die fragliche IP-Adresse sowie die beiden Bereichsgrenzen umgewandelt, kannst Du einfach mit <= und >= testen, ob die berechnete Zahl in dem Bereich liegt.
Wenn ja wie?Aber nicht mit split oder?
Doch. Erst split(), dann die einzelnen Teile mit ihrer Wertigkeit multiplizieren (naemlich 256^x mit x aus [3, 2, 1, 0]) und dann addieren. Geht natuerlich schoen als Einzeiler. :-)
So long