【问题标题】:Get domain from api call using php?使用php从api调用中获取域?
【发布时间】:2011-09-14 02:54:08
【问题描述】:

我有来自外部域的脚本可以访问我们服务器上的 api 脚本,该脚本通过 json 返回信息。我的问题是,如果有人从他们的站点向我们的站点请求 api 脚本,我可以获得请求来自的 url/域吗?如果是这样,我会怎么做?我尝试使用 $_SERVER 来获取域名,但这只是为我提供了我们托管的 api 脚本所在的域。

我使用的是 PHP 4.x,是的,很快就会升级,但不是现在。

【问题讨论】:

  • 这也适用于子域吗?还是只是顶级域?因此,如果有人从 subsite.mainsite.com 访问了 api,它会得到 mainsite.com 吗?我猜这取决于IP地址。

标签: php api dns


【解决方案1】:

请注意,引荐来源网址可能会被欺骗,因此如果您将其用于身份验证,请不要这样做。获取$_SERVER['HTTP_REFERER'] 后,您可以使用此函数解析出必要的内容:parse_url

【讨论】:

    【解决方案2】:

    最好的办法是查看$_SERVER['HTTP_REFERER']

    【讨论】:

    • 那么我认为您不太可能知道它来自哪个域,他们可能正在使用 API 服务器端而不是发送引荐来源网址。您可以实施 API 密钥系统来跟踪谁使用您的 API。
    • 如何检查 ip 并执行 gethostbyadd()
    • @G molvi:有趣的想法,但我认为您无法通过这种方式使用 API 获取域。该函数返回 IP 地址的主机名 - 在这种情况下,这可能对他没有多大帮助。
    • @Mick Hansen 它实际上已经使用了一个 api 密钥。我没有在原始帖子中解释所有内容。基本上我想根据访问 api 的站点运行某些功能。但我不想为每个域/子域创建一个 api,所以试图动态地做。
    • 我认为您需要您的 api 支持的此功能
    猜你喜欢
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多