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地址