GeoIP データベースを使用するために構築されたモジュールがあります。私はそれを使用して、Web サイトにアクセスしているユーザーの場所を取得し、YQL 天気から取得した都市 (米国のみ) の現在の天気を提供できます。私はこれを見つけましたhttps://stackoverflow.com/questions/12365078/best-way-to-get-location-weather-details-accurately読み取りは、ユーザーが自分の場所を入力しないとあまり正確ではありません。
これまでのところ、正しい場所が 90% 正常に表示されています。正しい場所を取得するために DHCP リースを更新する必要がある場合もありますが、クライアントはまだオフィスで正しい都市を取得できません。彼らのネットワーク接続についてはよくわかりませんが、転送されているのでしょうか...
モジュールでユーザーのIPを取得する方法は次のとおりです。
function getIpAddresses() {
$ipAddresses = array();
if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])) {
$ipAddresses['proxy'] = isset($_SERVER["HTTP_CLIENT_IP"]) ? $_SERVER["HTTP_CLIENT_IP"] : $_SERVER["REMOTE_ADDR"];
$ipAddresses['user'] = $_SERVER["HTTP_X_FORWARDED_FOR"];
} else {
$ipAddresses['user'] = isset($_SERVER["HTTP_CLIENT_IP"]) ? $_SERVER["HTTP_CLIENT_IP"] : $_SERVER["REMOTE_ADDR"];
}
return $ipAddresses;
}
ユーザーの位置情報の入力を要求せずに IP を取得/精度を向上させるより良い方法はありますか? ありがとう!