You are not logged in.

Ip

wcf.regNote.message

piep001

Intermediate

  • "piep001" started this thread

Posts: 338

Location: NRW

Occupation: Fachinformatiker (AE)

  • Send private message

1

Thursday, November 25th 2004, 8:27am

Ip

Ich hab mir ne PHP-Funktion geschrieben, um die IP von Besuchern meiner Seite auszulesen. Leider habe ich kürzlich keine IP, sondern nur "unknown" wiederbekommen. Wie kommt es dazu bzw. wie funktioniert das, dass man als User nen falschen Wert mitschickt?

PHP Source code

1
2
3
4
5
6
7
8
9
10
function getip()
{
    if(getenv("HTTP_X_FORWARDED_FOR"))
        // User über Proxy   
        $ip getenv("HTTP_X_FORWARDED_FOR");
    else
        // User normal
        $ip getenv("REMOTE_ADDR");
    return $ip;
}
Spaß im Netz auf www.piep001.de

Ephraim

Professional

Posts: 826

Location: coder-board.info

Occupation: Info-Student

  • Send private message

2

Thursday, November 25th 2004, 10:46am

Das hab ich auf PHP dot Net gefunden, als Kommentar vom 01-May-2003 06:06 und vom 25-Apr-2002 10:17:

Quoted

In reply to destes at ix dot netcom dot com dot nospam:

It's possible for a HTTP client to spoof HTTP_X_FORWARDED_FOR, and set it to a fake IP number. It's more secure to use this code and log BOTH the ip and the proxy ip.

if ($_SERVER["HTTP_X_FORWARDED_FOR"]) {
if ($_SERVER["HTTP_CLIENT_IP"]) {
$proxy = $_SERVER["HTTP_CLIENT_IP"];
} else {
$proxy = $_SERVER["REMOTE_ADDR"];
}
$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
} else {
if ($_SERVER["HTTP_CLIENT_IP"]) {
$ip = $_SERVER["HTTP_CLIENT_IP"];
} else {
$ip = $_SERVER["REMOTE_ADDR"];
}
}

echo "Your IP $ip<BR>\n";
if (isset($proxy)) {
echo "Your proxy IP is $proxy<BR>\n";
}

Quoted

The problem with empty HTTP_X_FORWARDED_FOR is because of anonymous proxy servers:

Anonymous - HTTP Proxy server does not send HTTP_X_FORWARDED_FOR variable to host, this improves privacy since your IP address cannot be logged.

High anonymity - HTTP Servers of this type don?t send HTTP_X_FORWARDED_FOR, HTTP_VIA and HTTP_PROXY_CONNECTION variables. Host doesn?t even know you are using proxy server an of course it doesn?t know your IP address.

Ciao Ephraim

piep001

Intermediate

  • "piep001" started this thread

Posts: 338

Location: NRW

Occupation: Fachinformatiker (AE)

  • Send private message

3

Thursday, November 25th 2004, 4:11pm

Hey, danke für die Antwort! Werde es heute Abend ausprobieren bzw. einbauen.

Hier noch mal schön eingerückt und farblich abgesetzt.

PHP Source code

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
if ($_SERVER["HTTP_X_FORWARDED_FOR"])
{
    if ($_SERVER["HTTP_CLIENT_IP"])
    {
        $proxy $_SERVER["HTTP_CLIENT_IP"];
    }
    else
    {
        $proxy $_SERVER["REMOTE_ADDR"];
    }

    $ip $_SERVER["HTTP_X_FORWARDED_FOR"];
}
else
{
    if ($_SERVER["HTTP_CLIENT_IP"])
    {
        $ip $_SERVER["HTTP_CLIENT_IP"];
    }
    else
    {
        $ip $_SERVER["REMOTE_ADDR"];
    }
}

echo "Your IP $ip<BR>\n";

if (isset($proxy))
{
    echo "Your proxy IP is $proxy<BR>\n";
}
Spaß im Netz auf www.piep001.de

This post has been edited 1 times, last edit by "piep001" (Nov 25th 2004, 4:13pm)


wcf.user.socialbookmarks.titel