获取客户端IP地址,第一种:
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 = sprintf("%u",ip2long($ip));
$ip = $long ? array($ip, $long) : array('0.0.0.0', 0);
return $ip[$type];
}
获取客户端IP地址,第二种:
function getIp(){
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) {
$ip = getenv("HTTP_CLIENT_IP");
} elseif (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) {
$ip = getenv("HTTP_X_FORWARDED_FOR");
} elseif (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) {
$ip = getenv("REMOTE_ADDR");
} elseif (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) {
$ip = $_SERVER['REMOTE_ADDR'];
} else {
$ip = "unknown";
}
return ($ip);
}
第三种:
public function ipip(){
$url='http://www.baidu.com/s?wd=ip';
// $str=$this->httpsRequestlison($url,'');
$str=file_get_contents($url);
$getinfo=explode('本机IP: ',$str);
$str=substr($getinfo[1],0,30);
preg_match_all('/\d+.\d+.\d+.\d+/', $str, $result);
var_dump($result);exit;
}
function httpsRequestlison($url, $data = null){
$ch = curl_init();
//设置url
curl_setopt($ch, CURLOPT_URL, $url);
//设置curl_exec方法的返回值,结果返回,不自动输出任何内容
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if(!empty($data)){
//发送post请求,
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
}
//跳过ssl检查项
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
//发送请求
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
其他:
echo $_SERVER['REMOTE_ADDR'].'<br>';
echo $_SERVER['HTTP_CLIENT_IP'].'<br>';
echo $_SERVER['HTTP_X_FORWARDER_FOR'].'<br>';
echo $_SERVER['SERVER_ADDR'].'<br>';