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

我试图了解即使经过私有排他(我是唯一的用户)高安全性代理后也发现了我们的真实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地址列为“附加IP”。

这是怎么回事,我们如何预防呢?

一种想法是,他们可能以某种巧妙的方式使用JavaScript / Java来获取地理位置数据并将其发送回自己。我浏览了页面源代码,找不到任何引人注意的内容(尽管我没有进行详尽的审查)。

编辑1:

如果我使用其他检查网站,它们似乎没有报告我的真实IP。例如,这些似乎都看不到真正的IP:

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

要么

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

编辑2:

根据其中一项评论,我尝试过:

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

任何地方都没有真实IP的迹象。我很想知道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对其进行修复为止。

参考方案

我想我在编辑中回答了自己的问题。最重要的是,这是一个三方面的问题:Java,Flash和WebRTC。根据我对问题的编辑,Java和Flash易于处理。在Windows上运行Chrome时,WebRTC似乎只是一个问题。

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

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

Python sqlite3数据库已锁定 - python

我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…

Selenium with Python:从具有只读功能的表单中收集电子邮件 - python

我正在尝试从内部具有只读内容的网站上的表单收集电子邮件地址。<input name="email" id="email" type="text" class="form-control" value="[email protected]" readonl…

用大写字母拆分字符串,但忽略AAA Python Regex - python

我的正则表达式:vendor = "MyNameIsJoe. I'mWorkerInAAAinc." ven = re.split(r'(?<=[a-z])[A-Z]|[A-Z](?=[a-z])', vendor) 以大写字母分割字符串,例如:'我的名字是乔。 I'mWorkerInAAAinc”变成…

如何在python中将从PDF提取的文本格式化为json - python

我已经使用pyPDF2提取了一些文本格式的发票PDF。我想将此文本文件转换为仅包含重要关键字和令牌的json文件。输出应该是这样的:#PurchaseOrder {"doctype":"PO", "orderingcompany":"Demo Company", "su…

查找字符串中的行数 - python

我正在创建一个python电影播放器​​/制作器,我想在多行字符串中找到行数。我想知道是否有任何内置函数或可以编写代码的函数来做到这一点:x = """ line1 line2 """ getLines(x) python大神给出的解决方案 如果换行符是'\n',则nlines …