用户Ip地址和百度地图api接口获取用户地理位置(经纬度坐标,城市)
<?php //获取用户ip(外网ip 服务器上可以获取用户外网Ip 本机ip地址只能获取127.0.0.1) function getip(){ if (! empty ( $_SERVER [ "HTTP_CLIENT_IP" ])){ $cip = $_SERVER [ "HTTP_CLIENT_IP" ]; } else if (! empty ( $_SERVER [ "HTTP_X_FORWARDED_FOR" ])){ $cip = $_SERVER [ "HTTP_X_FORWARDED_FOR" ]; } else if (! empty ( $_SERVER [ "REMOTE_ADDR" ])){ $cip = $_SERVER [ "REMOTE_ADDR" ]; } else { $cip = '' ; } preg_match( "/[\d\.]{7,15}/" , $cip , $cips ); $cip = isset( $cips [0]) ? $cips [0] : 'unknown' ; unset( $cips ); return $cip ; } $ip =getip(); //根据百度地图api得到用户Ip地理经纬度和城市 $url = "http://api.map.baidu.com/location/ip?ak=omi69HPHpl5luMtrjFzXn9df&ip=$ip&coor=bd09ll" ; $ch = curl_init(); curl_setopt( $ch , CURLOPT_URL, $url ); curl_setopt( $ch , CURLOPT_RETURNTRANSFER, 1); $output = curl_exec( $ch ); if (curl_errno( $ch )) { echo 'CURL ERROR Code: ' .curl_errno( $ch ). ', reason: ' .curl_error( $ch );} curl_close( $ch ); $info = json_decode( $output , true); if ( $info [ 'status' ] == "0" ){ $lotx = $info [ 'content' ][ 'point' ][ 'y' ]; $loty = $info [ 'content' ][ 'point' ][ 'x' ]; $citytemp = $info [ 'content' ][ 'address_detail' ][ 'city' ]; $keywords = explode ( "市" , $citytemp ); $city = $keywords [0]; } else { $lotx = "34.2597" ; $loty = "108.9471" ; $city = "西安" ; } var_dump( $lotx ); //x坐标 纬度 var_dump( $loty ); //y坐标 经度 var_dump( $city ); //用户Ip所在城市 |
--------------------------------------------------
百度地图api新增功能 有时间可以看看
http://developer.baidu.com/map/index.php?title=jspopular