2017-02-14 12 views
0

私はRails 4.2を使用しています。現在のユーザーの場所をマップに表示します。私は同じジオコーダを使用しようとしています。予期せず、request.locationに期待されるデータが表示されません。現在のユーザーの場所を取得する4.2

>request.location 
=> #<Geocoder::Result::Freegeoip:0x007fed262bf690 
@cache_hit=nil, 
@data= 
    {"ip"=>"::1", 
    "city"=>"", 
    "region_code"=>"", 
    "region_name"=>"", 
    "metrocode"=>"", 
    "zipcode"=>"", 
    "latitude"=>"0", 
    "longitude"=>"0", 
    "country_name"=>"Reserved", 
    "country_code"=>"RD"}> 

> request.remote_ip 
=> "::1" 
> request.env['REMOTE_ADDR'] 
=> "::1" 

お勧めはありますか?これはすべての環境で動作する必要があります。

+0

これはローカルホスト経由でアクセスしているようですので、正しい場所(IEのローカルホスト)を提供しています。ジオコーダーはネットワークアドレスを使用してユーザーのおおよその位置を取得します。これは期待どおりに機能しています。ブラウザー/デバイスにロケーション情報を照会するには、別のソリューションを使用する必要があります – Doon

答えて

0

ジオコーダーは、クライアントのIPアドレスに基づいてアドレスを取得します。クライアントはVPNや他のネットワークの背後にいるので、信頼できません。私は信頼できるHTML5ジオロケーションを使用して終了しました。

関連する問題