PHP实现获取客户端IP并获取IP信息

  代码很简洁,功能很实用,这里就不多废话了,直接奉上:

  

复制代码 代码如下:

  <?php

  /**

  * 获取客户端IP

  * @param  integer $type 返回类型 0:string,1:long

  * @return string|long

  */

  function getClientIp($type = 0) {

  $ip = NULL;

  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'];

  }

  $long = sprintf("%u", ip2long($ip));

  $ip   = $long ? array($ip, $long) : array('0.0.0.0', 0);

  return $ip[$type];

  }

  /**

  * 获取IP信息

  * @param  string|long $ip  IP地址

  * @return array

  */

  function getIpInfo($ip)

  {

  if (is_long($ip)) {

  $ip = long2ip($ip);

  }

  $api = 'http://ip.taobao.com/service/getIpInfo.php';

  $ret = file_get_contents($api . '?ip=' . $ip);

  $ret = json_decode($ret, true);

  if ($ret['code'] == 0) {

  return $ret['data'];

  }

  return array();

  }

  以上就是本文的全部内容了,希望大家能够喜欢。