Home >Backend Development >PHP Tutorial >thinkphp how to get the client IP_php tips

thinkphp how to get the client IP_php tips

WBOY
WBOYOriginal
2016-05-16 20:05:31961browse

In the thinkphp framework, the system has a built-in get_client_ip method to obtain the client’s IP address. Usage example:
$ip = get_client_ip();
In addition to thinkphp's built-in get_client_ip function, you can also use the following function to obtain the client IP address.
$type indicates the return type 0 returns the IP address, 1 returns the IPV4 address number
Share the code as follows

function get_client_ip($type = 0) {
  $type    = $type ? 1 : 0;
  static $ip =  NULL;
  if ($ip !== NULL) return $ip[$type];
  if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $arr  =  explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
    $pos  =  array_search('unknown',$arr);
    if(false !== $pos) unset($arr[$pos]);
    $ip   =  trim($arr[0]);
  }elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
    $ip   =  $_SERVER['HTTP_CLIENT_IP'];
  }elseif (isset($_SERVER['REMOTE_ADDR'])) {
    $ip   =  $_SERVER['REMOTE_ADDR'];
  }
  // IP地址合法验证
  $long = ip2long($ip);
  $ip  = $long ? array($ip, $long) : array('0.0.0.0', 0);
  return $ip[$type];

I hope this article will be helpful for everyone to learn more about PHP programming.

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn