javascript - 使用 API 服务获取访问者 IP
问题描述
我想通过使用任何在线服务(如https://www.ipstack.com或https://www.ipify.org/ )来获取访问者 IP,但是当我使用 PHP 代码时,它会返回服务器 IP。我明白,因为代码在服务器中运行并返回服务器 IP,但是我怎样才能获得访问者 IP?我不想使用 REMOTE_ADDR 左右。
我尝试使用 getJSON 获取访问者 IP,但问题是如何将数据传递给 PHP 代码并在那里使用它。
======更新======
其他页面没有解决问题,所以请不要添加链接..
我想使用这个 api 的问题: http ://api.ipstack.com/check?access_key=xxxxx&output=json
在这里,我们将以 JSON 格式获取数据。但是如何将数据传递给 PHP?
==========UPDATE========== 我现在用来获取访问者IP的代码..
foreach (array('HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR') as $key) {
if (array_key_exists($key, $_SERVER) === true) {
foreach (array_map('trim', explode(',', $_SERVER[$key])) as $ip) {
if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false) {
return $ip;
}
}
}
}
谢谢
解决方案
我想使用这个 api 的问题:http ://api.ipstack.com/check?access_key=xxxxx&output=json
该/check
API 是查找进行该 API 调用的 IP 地址的快捷方式。如果您通过 PHP 从您的服务器创建它,它将始终返回您服务器的 IP 地址。
使用标准查找并将其传递给用户REMOTE_ADDR
,如https://ipstack.com/documentation#standard中所述:
$url = "https://api.ipstack.com/{$_SERVER['REMOTE_ADDR']}?access_key=YOUR_ACCESS_KEY";
$json = file_get_contents($url);
推荐阅读
- r - 将 data.frame 中缺少的列放回 dta.frames 列表中
- javascript - Javascript Keydown 未触发
- flutter - setState 不更新 TextFormField 小部件的 initialValue
- azure - 如何在 Databricks 上的 SparkListener 中使用 dbutils
- python - 从 Morningstart 检索股票数据
- android - 撰写具有透明背景的圆形按钮
- javascript - 如何在 Web 应用程序中创建带有可选输入字段的 fetch url
- ubuntu - Google Cloud VM 中的后台进程在一段时间后终止
- android - 在 Android Studio 中按住时如何更改按钮的背景颜色?
- selenium - 从 Selenium 3.11.0 升级到 4.0.0 找不到 Chrome 选项 setExperimentalOption 方法