【问题标题】:PHP API get requesters IP Address [duplicate]PHP API获取请求者IP地址[重复]
【发布时间】:2017-07-10 02:39:20
【问题描述】:

您好,我创建了一个接受 GET/POST 请求的 PHP API。

我想获取向我的 API 发出请求的服务器的 IP 地址,以便我进行一些验证。

我尝试为此使用 $_SERVER['REMOTE_ADDR'] 值,但注意到它不适用于所有类型的网站。

我试图在网上搜索解决方案,但只找到了如何获取客户端的IP。
我猜“客户端”是指触发 API 调用的用户。

我需要的是从中发出请求的网站服务器地址。
有人可以提供更好的方法吗?

【问题讨论】:

  • 除非客户向您发送该信息,否则我无法确定任何方法。您只有客户发送给您的信息。
  • 在这个类比中,服务器不是您的客户端。此外,他们可能会使用 VPN 或其他方法为您提供虚假 IP
  • 有什么方法可以防止 VPN 或那些其他方法?
  • 改进了问题。

标签: php api request ip


【解决方案1】:

API 可以从服务器调用 - 例如,另一个 PHP 脚本 - 或从客户端 - 通常是使用 AJAX 的浏览器中的 Javascript,这更常见。例如,用于 Google Analytics、Google Maps 等的 Javscript sn-p 将包含在大量网页中,但对 Google 的实际调用将由客户端浏览器完成。在这些情况下,我认为这是许多(大多数?)API 的典型情况,您将看到的唯一 IP 地址是客户端,而不是 Web 服务器。 Google(和许多其他 API)使用的解决方案是要求注册免费的 API 密钥才能使用 API。您通常无法将其跟踪到特定的 Web 服务器,但它确实允许您与注册 API 的初始客户或开发人员建立联系。

TL;DR 为您的网站用户/客户/开发人员创建一个免费的“API 密钥”并以此方式跟踪他们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-23
    • 2013-12-04
    • 1970-01-01
    • 2021-01-05
    相关资源
    最近更新 更多