Thema: Delphi Internet IP

Einzelnen Beitrag anzeigen

Benutzerbild von Wormid
Wormid

Registriert seit: 26. Aug 2003
Ort: Steinfurt
292 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Internet IP

  Alt 2. Dez 2003, 18:45
Die Internet-IP zu ermitteln ist eine kleine Wissenschaft für sich... Man kann nunmal leider nicht feststellen, ob ein PC direkt via DFÜ/Lan am Internet hängt und das Interface somit auch die gesuchte IP hat, oder ob man z.B. hinter einem Router hängt. Dann unterscheidet sich die externe IP nämlich von der internen.

Ich wüsste also nicht, wie man ohne ein Script oder Service im Internet zuverlässig die IP ermitteln kann. Wenn Du Angst hast, das der Service, den du nutzen willst, irgendwann den Dienst einstellt, dann wäre es natürlich am einfachsten, auf einem eigenen Webspace so ein Script abzulegen.

Hier mal die Routine vom phpBB, mit der die IP des Users ermittelt wird, ist direkt so nutzbar - nur als .php irgendwo speichern und auf Scriptfähigen Webspace hochladen.

Code:
<?php

  if (getenv('HTTP_X_FORWARDED_FOR') != '') {
   $client_ip = (!empty($HTTP_SERVER_VARS['REMOTE_ADDR'])) ? $HTTP_SERVER_VARS['REMOTE_ADDR'] : ((!empty($HTTP_ENV_VARS['REMOTE_ADDR']) ) ? $HTTP_ENV_VARS['REMOTE_ADDR'] : $REMOTE_ADDR);

   if (preg_match("/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/", getenv('HTTP_X_FORWARDED_FOR'), $ip_list)) {
      $private_ip = array('/^0\./', '/^127\.0\.0\.1/', '/^192\.168\..*/', '/^172\.16\..*/', '/^10.\.*/', '/^224.\.*/', '/^240.\.*/');
      $client_ip = preg_replace($private_ip, $client_ip, $ip_list[1]);
   }
  } else {
   $client_ip = (!empty($HTTP_SERVER_VARS['REMOTE_ADDR'])) ? $HTTP_SERVER_VARS['REMOTE_ADDR'] : ((!empty($HTTP_ENV_VARS['REMOTE_ADDR']) ) ? $HTTP_ENV_VARS['REMOTE_ADDR'] : $REMOTE_ADDR);
  }
  echo $client_ip;

?>
Debuggers don't remove Bugs, they only show them in Slow-Motion.
  Mit Zitat antworten Zitat