使用客户端的 IP 获取内容



我在这里有点尴尬,因为我试图通过使用客户端的浏览器而不是服务器远程获取内容。但是我有一些具体的要求,这对我来说是不可能的,我真的花了一整天的时间,但没有成功。

  1. 我需要获取的数据在远程服务器上。
  2. 我不拥有这个服务器(我不能做任何修改)。
  3. 这是一个字符串,我需要得到它并传递给PHP。
  4. 必须是实际获取数据的客户端(用户浏览网站)浏览器(它需要是它的IP,而不是服务器)。

而且,在跨域策略下,我似乎无法绕过它。我已经知道了,仍然尝试了一个简单的Ajax查询,失败了。然后我想"为什么不使用iframe",但同样的限制似乎也适用于他们。然后我阅读了关于使用YQL (http://developer.yahoo.com/yql/)的内容,但我注意到我试图访问的服务器阻止了YQL的用户代理,使其无法使用此技术。

所以,这就是我能想到或找到的。但我无法相信这是不可能实现的事情,这看起来并不难…

哦,我的Javascript知识非常基础,这肯定也没有帮助。

这是同源策略存在的原因之一。你试图让你的网页访问另一台服务器上的数据,而用户不知道,并且没有从其他服务器获得"许可"。

如果不建立双向信任系统(即修改"其他"服务器),我认为这是不可能的。

即使有了新的xhr和跨域支持,双向信任仍然需要通信工作。

您可以考虑胖客户机方法,或者尝试@selbie suggestion并要求手动用户交互。

The same origin policy prevents document or script loaded from one 
origin from getting or setting properties of a document from a different
origin. 

—From http://www.mozilla.org/projects/security/components/same-origin.html

现在,如果你想做一些黑客来得到它…访问本网站

注意:我从未尝试过上述网站上的任何方法,也不能保证它们的成功

我只能看到一个非常丑陋的解决方案:iFrames。

你可以使用flash应用程序:Flash与crossdomain.xml文件(不会有帮助,虽然,因为你不控制其他服务器)

在新的浏览器上,服务器端设置了CORS - requires Access-Control-Allow-Origin头。

你也可以尝试使用JSONP(但我认为这不会工作,因为你不拥有其他服务器)。

我认为你需要咬牙切齿,寻找其他方式来获取内容(例如在服务器端)。

相关内容

  • 没有找到相关文章

最新更新