Geoモジュール(nginx)で使用するには、OperaMiniのプロキシIPアドレスが必要です。NginxはプロキシにX-FORWARDED-FORヘッダーを自動的に使用できますが、プロキシリストはどこで入手できますか?
4 に答える
あなたが解決したい問題を正確に理解しているかどうかはわかりませんが、エンドユーザー向けに地理位置情報機能を実装したいと考えており、質問は使用する IP アドレスに関するものです。
その場合は、Opera Mini リクエスト ヘッダーと X-Forwarded-For のドキュメントを参照してください: http://dev.opera.com/articles/view/opera-mini-request-headers/
X-Forwarded-For
これには、要求がデバイスから Mini プロキシに送信される途中で渡されたプロキシ サーバーのカンマ区切りのリストが含まれます。内部 IP ではないリストの最初の項目は、常に Mini プロキシに接続する IP アドレスになるため、リクエストの発信元に関する最も信頼できる情報源であり、ジオロケーションなどに適しています。
オペラのウェブサイトのどこにも公式リストが見つかりません. ここにそれらのipsのいくつかがあります
[編集] 誤解を招く可能性があるため、ここで元の回答の 1 つの段落を削除しました。nginx GeoIP ソース コードを読んだ後、nginx GeoIP モジュールが x-forwarded-for ヘッダーを使用してこれらのプロキシの背後にある IP を取得できるように、すべての「信頼できる」Opera ミニ プロキシを知る必要があるようです。
Opera Mini および Opera Turbo のプロキシ (実際には MITM) サーバーは、次のような「Opera Software AS」IP アドレス ブロックに存在します。
37.228.104.0 255.255.248.0 82.145.208.0 255.255.240.0 107.167.96.0 255.255.224.0 141.0.8.0 255.255.248.0 185.26.180.0 255.255.252.0
Opera IP アドレスがまだ MaxMind データベースにないことを確認しますか? (これは nginx モジュールがデフォルトで使用する DB です)
私の最初の賭けは、プロキシであろうとなかろうと、これらの IP アドレスが MaxMind リストに含まれると考えることです。
しかし、最善の方法は、Opera プロキシと、任意の公開HTTP プロキシ リストリソースからの別のプロキシを使用して簡単にテストすることだと思います。次に、プロキシ IP の地理的位置を取得しているかどうかを確認します。
地理的な場所に x-forwarded-for IP を使用するように Nginx を構成することを忘れないでください。
real_ip_header X-Forwarded-For;
次に、テストの簡単な例を次に示します。
<html>
<head>
<title>What is my IP address - determine or retrieve my IP address</title>
</head>
<body>
<?php
if (getenv(HTTP_X_FORWARDED_FOR)) {
$pipaddress = getenv(HTTP_X_FORWARDED_FOR);
$ipaddress = getenv(REMOTE_ADDR);
echo "Your Proxy IP address is : ".$pipaddress. " (via $ipaddress) " ;
} else {
$ipaddress = getenv(REMOTE_ADDR);
echo "Your IP address is : $ipaddress";
}
$country = getenv(GEOIP_COUNTRY_NAME);
$country_code = getenv(GEOIP_COUNTRY_CODE);
echo "<br/>Your country : $country ( $country_code ) ";
?>
</body>
</html>
(別のサイトからその例をコピーして貼り付けただけですが、よくできていると思います)