PHP API获取请求者IP地址[重复]

Posted

技术标签:

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

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

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

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

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

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

【问题讨论】:

除非客户向您发送该信息,否则我无法确定任何方法。您只有客户发送给您的信息。 在这个类比中,服务器不是您的客户端。此外,他们可能会使用 *** 或其他方法为您提供虚假 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 密钥”并以此方式跟踪他们。

【讨论】:

以上是关于PHP API获取请求者IP地址[重复]的主要内容,如果未能解决你的问题,请参考以下文章

php如何获取通过CURL或file_get_contents抓取者的IP地址

在PHP中获取本地机器IP地址[重复]

如何通过PHP中的IP地址获取时区[重复]

C#调用百度高精度IP定位API通过IP获取地址

来自 IP 地址的 Google Vision API 请求...被阻止

PHP 获取请求接口的IP地址