Jemand zu Hause?Leser: 25
2010-07-02T23:27:46 EscapeIch ermittle den Referrer sowie die IP des Referrers
Wie frage ich & perlintro 
brian's Leitfaden für jedes Perl-Problem2010-07-03T14:47:22 pqvielleicht wäre ja sogar ein code-schnipsel möglich?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
sub get_remote_addr {
	exists $ENV{'REMOTE_ADDR'} && do {
		$ENV{'REMOTE_ADDR'}
			?	return $ENV{'REMOTE_ADDR'}
			:	return 'empty';		
	};
	
	return 'empty';
}
sub get_referrer {
	exists $ENV{'HTTP_REFERER'} && do {
		$ENV{'HTTP_REFERER'}
			?	return $ENV{'HTTP_REFERER'}
			:	return 'empty';
	};
	
	return 'empty';
}
sub get_client_ip {
	exists $ENV{'HTTP_CLIENT_IP'} && do {
		($ENV{'HTTP_CLIENT_IP'} and $ENV{'HTTP_CLIENT_IP'} ne '127.0.0.1')
			?	return $ENV{'HTTP_CLIENT_IP'}
			:	return 'empty';
	};
	
	return 'empty';
}
sub get_x_ip_client {
	exists $ENV{'X_CLIENT_IP'} && do {
		($ENV{'X_CLIENT_IP'} and $ENV{'X_CLIENT_IP'} ne '127.0.0.1')
			?	return $ENV{'X_CLIENT_IP'}
			:	return 'empty';
	};
	
	return 'empty';
}
sub get_http_via {
	exists $ENV{'HTTP_VIA'} && do {
		($ENV{'HTTP_VIA'} and $ENV{'HTTP_VIA'} ne '127.0.0.1')
			?	return $ENV{'HTTP_VIA'}
			:	return 'empty';
	};
	
	return 'empty';
}
sub get_x_forwarded {
	exists $ENV{'HTTP_X_FORWARDED_FOR'} && do {
		($ENV{'HTTP_X_FORWARDED_FOR'} and $ENV{'HTTP_X_FORWARDED_FOR'} ne '127.0.0.1')
			?	return $ENV{'HTTP_X_FORWARDED_FOR'}
			:	return 'empty';		
	};
	
	return 'empty';
}
sub get_client_host {
    my $client_ip = shift;
    my ($ip_addr, $client_host);
    $client_ip ne 'empty'
        ?   do {
                $ip_addr = inet_aton($client_ip) || 'N/A';
                $client_host = gethostbyaddr($ip_addr, AF_INET) || 'N/A';
                length($client_host) < 3 && ($client_host = 'N/A');
            }
        :   ($client_host = 'N/A');
    \$client_host;
}2010-07-04T12:25:05 GwenDragonDir ist bestimmt bewusst, dass im HTTP_REFERER alles drinstehen kann.
Also auch Code, den Perl bei einer Ausgabe ausführen könnte.
2010-07-04T12:30:12 EscapeNun zurück zum ursprünglichen Thema?
Wie frage ich & perlintro 
brian's Leitfaden für jedes Perl-Problem2010-07-04T12:31:14 pqsind ja jetzt ein paar fragen gestellt worden, die du noch nicht beantwortet hast.
Quoteund wie ermittelst du die "IP des referrers"? mit `host` o.ä.?
Wie frage ich & perlintro 
brian's Leitfaden für jedes Perl-Problem2010-07-04T12:37:47 pq
1
2
3
4
5
6
7
8
9
10
11
12
13
14
sub get_client_host {
    my $client_ip = shift;
    my ($ip_addr, $client_host);
    $client_ip ne 'empty'
        ?   do {
                $ip_addr = inet_aton($client_ip) || 'N/A';
                $client_host = gethostbyaddr($ip_addr, AF_INET) || 'N/A';
                length($client_host) < 3 && ($client_host = 'N/A');
            }
        :   ($client_host = 'N/A');
    \$client_host;
}
Wie frage ich & perlintro 
brian's Leitfaden für jedes Perl-Problem2010-07-04T12:48:09 pqder gezeigte schnipsel liefert den host zur client ip.