How to detect the visitor's IP address using HTML?

前端 未结 6 769
暗喜
暗喜 2020-12-29 13:59

How can i detect the visitors IP Address using HTML for my website? I have a contactform.html and a formsent.html. And when formsent.html sends the contact info to my email

6条回答
  •  我在风中等你
    2020-12-29 14:18

    The following script may be useful to you. You can copy it and save it as {whateveryouwant}.php

    validate_ip($_SERVER['HTTP_CLIENT_IP']))
       return $_SERVER['HTTP_CLIENT_IP'];
    
      // check for IPs passing through proxies
      if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
       // check if multiple ips exist in var
        $iplist = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
        foreach ($iplist as $ip) {
         if ($this->validate_ip($ip))
          return $ip;
        }
       }
    
      if (!empty($_SERVER['HTTP_X_FORWARDED']) && $this->validate_ip($_SERVER['HTTP_X_FORWARDED']))
       return $_SERVER['HTTP_X_FORWARDED'];
      if (!empty($_SERVER['HTTP_X_CLUSTER_CLIENT_IP']) && $this->validate_ip($_SERVER['HTTP_X_CLUSTER_CLIENT_IP']))
       return $_SERVER['HTTP_X_CLUSTER_CLIENT_IP'];
      if (!empty($_SERVER['HTTP_FORWARDED_FOR']) && $this->validate_ip($_SERVER['HTTP_FORWARDED_FOR']))
       return $_SERVER['HTTP_FORWARDED_FOR'];
      if (!empty($_SERVER['HTTP_FORWARDED']) && $this->validate_ip($_SERVER['HTTP_FORWARDED']))
       return $_SERVER['HTTP_FORWARDED'];
    
      // return unreliable ip since all else failed
       return $_SERVER['REMOTE_ADDR'];
     }
    
    function validate_ip($ip) {
         if (filter_var($ip, FILTER_VALIDATE_IP, 
                             FILTER_FLAG_IPV4 | 
                             FILTER_FLAG_IPV6 |
                             FILTER_FLAG_NO_PRIV_RANGE | 
                             FILTER_FLAG_NO_RES_RANGE) === false)
             return false;
         self::$ip = $ip;
         return true;
     }
    ?>
    

提交回复
热议问题