0

我需要 Opera Mini 的代理 IP 地址才能在 Geo 模块(nginx)中使用它。Nginx 可以自动为代理使用 X-FORWARDED-FOR 标头,但是从哪里获取代理列表?

4

4 回答 4

0

不确定我是否完全理解您要解决的问题,但我假设您想为最终用户实施一些地理定位功能,而您的问题是关于使用什么 IP 地址。

如果是这样,请参阅 Opera Mini 请求标头和 X-Forwarded-For 的文档: http ://dev.opera.com/articles/view/opera-mini-request-headers/

X-Forwarded-For

这包含请求在从设备到 Mini 代理的途中传递的代理服务器的逗号分隔列表。列表中第一项不是内部 IP 的将始终是连接到 Mini 代理的 IP 地址,因此它是有关请求来源的最可靠信息来源,适用于地理定位等。

于 2013-03-14T08:17:19.603 回答
0

您确定 Opera IP 地址不在 MaxMind 数据库中吗?(这是 nginx 模块默认使用的数据库)

我的第一个赌注是认为这些 IP 地址将在 MaxMind 列表中,无论是否是代理。

但我认为最好的办法是使用 Opera 代理和来自任何公共HTTP 代理列表资源的另一个代理进行快速测试。然后验证您是否获得了代理 IP 的地理位置。

请记住将 Nginx 配置为使用 x-forwarded-for IP 作为地理位置。

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>

(我只是从另一个站点复制/粘贴该示例,但我认为这做得很好)

于 2013-04-07T21:54:00.693 回答
0

在 Opera 网站上的任何地方都找不到官方列表。这是其中的一些ip

[编辑] 在这里删除了我原始答案的一段,因为这可能会产生误导。阅读 nginx GeoIP 源代码后,似乎有必要了解所有“受信任的”opera mini 代理,以便 nginx GeoIP 模块可以使用 x-forwarded-for 标头获取这些代理后面的 IP。

于 2013-03-14T13:37:15.307 回答
0

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
于 2016-09-24T03:09:00.807 回答