如何在编码器中获得当前位置和网络IP


How to get current location and network IP in codeigniter?

Staff登录时,我们需要自动检索当前位置并插入它。这是一个在线打卡系统。所以只是为了确保在其他地方打卡时不会误用In/Out。使用Gaurang Joshi下面提到的http://ipinfo.io/,我得到了互联网IP和纬度和纬度。所以我需要使用任何谷歌地图库来获得具体的位置?如何实现它?任何帮助。

服务器IP

通过$_SERVER['SERVER_ADDR']获取服务器IP地址

本地IP

通过$_SERVER['REMOTE_ADDR']获取客户端IP


查找位置只需执行:

//ipinfo grabs the ip of the person requesting
 $getloc = json_decode(file_get_contents("http://ipinfo.io/"));
 echo $getloc->city; //to get city

如果你使用的是坐标,它会返回一个字符串,比如32,-72,因此,你可以使用:

$coordinates = explode(",", $getloc->loc); // -> '32,-72' becomes'32','-72'
echo $coordinates[0]; // latitude
echo $coordinates[1]; // longitude
public function index(){
    $ip = $_SERVER['REMOTE_ADDR'];
    //$location = file_get_contents('http://freegeoip.net/json/'.$_SERVER['REMOTE_ADDR']);
    $location = file_get_contents('http://ip-api.com/json/'.$ip);
    //you can also use ipinfo.io or any other ip location provider API
    //print_r($location);exit;
    $data_loc = json_decode($location);
    $marker = array();
    $data = array(
                'view_file'=>'index',
                'current_menu'=>'index',
                'site_title' =>'site title',
                'logo'      => 'logo',
                'title'=>'Family Owned Pest Control',
            );
    $Lat = '';
    $Lon = '';
    if(isset($_GET['searchsubmit']))
    {
        $Address = $this->input->get('addr_loc'); 
        $jobtitle = $this->input->get('jobtitle'); 
        $request_url = "//maps.googleapis.com/maps/api/geocode/xml?address=".$Address."&sensor=true";
        $xml = simplexml_load_file($request_url) or die("url not loading");
        $status = $xml->status;
        if ($status=="OK") {
            $Lat = $xml->result->geometry->location->lat;
            $Lon = $xml->result->geometry->location->lng;
        }
    }
    if(empty($Lat) AND empty($Lon))
    {
        $config['center'] = 'auto';
        $marker['position'] = $data_loc->lat.",". $data_loc->lon ;
        $Lat = $data_loc->lat;
        $Lon = $data_loc->lon;
    }
    else{
        $config['center'] ='auto';
        $marker['position'] = $Lat.",". $Lon ;
    }
    $config['zoom'] = '11';
    $config['places'] = TRUE;
    $config['placesAutocompleteInputID'] = 'myPlaceTextBox';
    $config['placesAutocompleteBoundsMap'] = TRUE; // set results biased towards the maps viewport
    $this->googlemaps->initialize($config);
    $marker['infowindow_content'] =  $data_loc->city.'<br>'.$data_loc->regionName.'<br>'.$data_loc->country;
    $marker['icon'] = '//chart.apis.google.com/chart?chst=d_map_pin_letter&chld=A|9999FF|000000';
    $this->googlemaps->add_marker($marker);
    $Lat1 = $Lat+0.05;
    $Lon1 = $Lon+0.05;
    $marker = array();
    $marker['position'] = $Lat1.",". $Lon1;
    $marker['draggable'] = TRUE;
    $marker['animation'] = 'DROP';
    $marker['infowindow_content'] =  'dskjfhdsjhfsd' ;
    $marker['icon'] = '//chart.apis.google.com/chart?chst=d_map_pin_letter&chld=B|9999FF|000000';
    $this->googlemaps->add_marker($marker);
    $Lat2 = $Lat1+0.05;
    $Lon2 = $Lon1+0.05;
    $marker = array();
    $marker['position'] = $Lat2.",". $Lon2;
    $marker['draggable'] = TRUE;
    $marker['animation'] = 'DROP';
    $marker['infowindow_content'] =  'dskjfhdsjdsfsdfhfsd' ;
    $marker['icon'] = '//chart.apis.google.com/chart?chst=d_map_pin_letter&chld=C|9999FF|000000';
    $this->googlemaps->add_marker($marker);

    $data['content']='content/peta';
    $data['map'] = $this->googlemaps->create_map();
    $this->template->load_index_template($data);
}

您可以使用像这样的代码编写器库https://github.com/4riel/Geoip-codeigniter.