为什么即使使用代理,我的真实IP地址仍然可见?

时间:2015-05-27 03:57:14

标签: python google-chrome selenium proxy selenium-chromedriver

我试图了解即使在通过私有专用(我是唯一的用户)高安全性代理后,我们的真实IP地址是如何被发现的。

PROXY_IP = "<private proxy IP>:<port>"

options = webdriver.ChromeOptions()
options.add_argument("--proxy-server=%s" % PROXY_IP)

driver = webdriver.Chrome(executable_path=".\\driver\\chromedriver.exe",
                          chrome_options=options)

driver.get("http://www.stayinvisible.com/")

该网站显示了一系列数据,可以通过与您的互动获取。它正确地列出了代理的IP地址,令我惊讶的是,它还将我们的DSL IP地址列为&#34;附加IP&#34;。

这是怎么发生的,我们如何防止它?

一个想法是,他们可能以一种聪明的方式使用JavaScript / Java来获取地理定位数据并将其发送回自己。我浏览了页面源代码,无法找到任何突出的内容(尽管我没有进行详尽的审核)。

编辑1:

如果我使用不同的支票网站,他们似乎无法报告我的真实IP。例如,这些中的任何一个似乎都看不到真正的IP:

driver.get("http://simplesniff.com/")

driver.get("http://analyze.privacy.net/")

编辑2:

根据其中一条评论,我试过了:

driver.get("http://myhttp.info/")

任何地方都没有真正知识产权的迹象。我很想知道stayinvisible.com代码在做什么......

编辑3:

我可能找到了答案:WebRTC

https://www.privateinternetaccess.com/forum/discussion/8204/how-to-stop-webrtc-local-ip-address-leaks-on-google-chrome-and-mozilla-firefox-while-using-private-i

这显然会影响Windows上的Chrome。这正是我正在运行的(很好地为我服务)。我终于找到了一个检查IP泄漏的站点,并告诉我他们如何获得真实地址后,我想出了这个:

driver.get("http://ipleak.net/")

我今天没有时间,但明天我会在Windows下检查Firefox,在Ubuntu桌面和OSX下检查Chrome,只需要三检查。

编辑4:部分解决方案

好吧,显然我不是在等待答案。

好的,我破解了第一期。我怀疑http://simplesniff.com/使用Flash或Java来发现真实的IP地址。原来是Flash。它就像通过chrome:// plugins和重新加载来验证它一样简单。

要在代码中禁用Flash:

options = webdriver.ChromeOptions()
options.add_argument("--proxy-server=%s" % PROXY_IP)    # Tell Chrome to use a proxy
options.add_argument("--disable-bundled-ppapi-flash")   # Disable internal Flash player
options.add_argument("--disable-plugins-discovery")     # Disable external Flash player (by not allowing it to load)

像魅力一样工作。现在http://simplesniff.com/无法嗅出真实的IP地址。

还存在一个问题:WebRTC。这可能会取消在Windows上使用Chrome,直到Google修复它。

1 个答案:

答案 0 :(得分:2)

我想我在编辑中回答了我自己的问题。底线是这是一个三头问题:Java,Flash和WebRTC。根据我对这个问题的编辑,Java和Flash很容易处理。在Windows上运行Chrome时,WebRTC似乎只是一个问题。

在我们的例子中,最终的代码库将使用PhantomJS在Linux服务器上运行。这意味着上述问题都不会成为问题。

我们确实有一个小型应用程序,它将在Windows机器上运行,不方便。由于似乎存在使Firefox和Selenium 2.0有问题的错误,因此解决方案是在Windows主机上的Ubuntu Workstation虚拟机上运行此代码库。在这种情况下,Chrome应该表现良好并且一切都会很好。