]>
git.p6c8.net - selfforum.git/blob - selfforum-cgi/shared/Id.pm
3 ##############################################
5 # Autor: n.d.p. / nd@o3media.de #
7 # Letze Aenderung: n.d.p. / 2001-01-28 #
9 # ========================================== #
13 # Bereitsstellen einer einmaligen ID #
15 ##############################################
25 use base
qw(Exporter);
26 @Id::EXPORT
= qw(unique_id);
30 ##########################################
37 ##########################################
39 # sub unique_id ################################################
41 # composing of an unique ID...
46 my $ip=$ENV{'REMOTE_ADDR'};
48 my $port=$ENV{'REMOTE_PORT'};
49 my $rand=int(rand(time()));
50 $ip = hex(join ('',map {sprintf ('%02X',$_)} split (/\./,$ip)));
52 join '',map {to_base64 ($_)} ($time, $port, $ip, $rand, $$);
55 # sub to_base64 ################################################
57 # only converts (max.) 32-bit numbers into a
59 # its not the RFC base64 format!
63 my $y = $table[$x % 64];
65 $y = $table[$x % 64].$y while ($x = int ($x/64));
72 @table = ('a'..'z','-','0'..'9','A'..'Z','_');
75 # making 'require' happy
patrick-canterino.de