Thread Soll man den hash "resetten" ?: Suche die Lösung für %Hash (7 answers)
Opened by polkana at 2006-12-30 13:27

polkana
 2006-12-30 13:27
#72807 #72807
User since
2004-06-18
74 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo,

seit eine Woche habe bis her keine Lösung gefunden und hoffe jemand weist schon die Antwort auf meine Frage hier.

in meinem Script wird ein Hash benutzt, der so aussiet:
Code: (dl )
1
2
3
4
5
6
7
8
our %providers = (
'Telecom1' => '80.80.105.0 - 80.80.111.255',
'Telecom2' => '83.136.112.0 - 83.136.112.255',
'IDEA (India)' => '203.145.137.160 - 203.145.137.191',
'Simobil (Slovenia)' => '80.95.224.0 - 80.95.228.255',
'Omar Monges (Lat. Amerika)' => '200.0.0.0 - 200.255.255.255',
'DataElectronics (Ireland)' => '217.114.160.0 - 217.114.175.255',
);

und so weiter...

Ich durchsuche über diesen Hash die IP Adresse die ich extra in einem Datenbank habe und wenn diese IP passt zur Maske in diesem Hash, merke ich "+1", und so macht es immer weiter bis mehrere IPs zu Ende sind.
Die Code siet so aus:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/perl
use strict;
use StFunc;
our %provider_cache = ();
my $ip = '217.118.85.66';
detect_ip($ip); #Ist in StFunc.pm defined
# %provider_cache wird befüllt mit angaben 'Provider' => '1'
# while weiter ist nur zum testzweck hier um zu sehen wird die IP erkannt oder nicht (0 oder 1 ergibt)
while(my($prv, $ip) = each(%provider_cache))
{
print "$prv => $ip\n";
}
exit;

Wenn ich den Script run mache, zeigt es dass die IP erkannt wurde.... Sollte ja gut gehen, doch es stimmt etwas nicht.

Ausschlislich benutze ich um zu schnellstarbeiten mod_perl.
Und auch CGI - es wird über HTTP Interface gleich die Ausgabe vergeben, wie viel Percent Provider sind gerade da.

Problem ist in dem, dass ich noch weder richtige Zahlen die "Unbekannte" Provider kriege, und trotz die IP die bereit im Hash verlegt sind lässt der Script sie nicht merken.


Ja... viel geschrieben und selbst stelle ich vor wie das schwehr die richtige weg zeigen. Und deshalb dachte ich dass irgend wie der %ProviderHash einfach resetten soll, da aber weis ich nicht wie. In PHP es ist einfach reset($array) - und wie geht es mit Perl?

PS
Sollte ich mehr Code zeigen? mache ich gerne.

Danke.
mfG Alexander

View full thread Soll man den hash "resetten" ?: Suche die Lösung für %Hash