Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用户IP和用户代理_Javascript_Angularjs_Api - Fatal编程技术网

Javascript 用户IP和用户代理

Javascript 用户IP和用户代理,javascript,angularjs,api,Javascript,Angularjs,Api,我正在通过第三方API构建一个web应用程序,他们要求我为每个调用传递用户IP和用户代理 我更喜欢javascript(我使用Angular)或php,因为我使用curl处理请求。我可以找到一个第三方脚本,但只针对用户IP,而不是用户代理。我更喜欢两者兼备的,以减少通话次数 任何人都可以用脚本或网站来帮助解决这个问题吗?在PHP中: <?php $userAgent = $_SERVER['HTTP_USER_AGENT']; $ip = $_SERVER['REMOTE_

我正在通过第三方API构建一个web应用程序,他们要求我为每个调用传递用户IP和用户代理

我更喜欢javascript(我使用Angular)或php,因为我使用curl处理请求。我可以找到一个第三方脚本,但只针对用户IP,而不是用户代理。我更喜欢两者兼备的,以减少通话次数

任何人都可以用脚本或网站来帮助解决这个问题吗?

在PHP中:

<?php
    $userAgent = $_SERVER['HTTP_USER_AGENT'];
    $ip = $_SERVER['REMOTE_ADDR'];
?>
在JS中获取IP是不可能的,除非您滥用WebRTC中的安全漏洞或查询第三方服务,如下所示。重要的是要知道
ip
不存在于
req.onload
之外,因此在请求响应之前不能使用

如果您可以访问ES7(不太可能,但为了完整起见,我会将其包括在内),您可以使用它来获取用户的IP:

(async () => {
  var ip = (await fetch("https://api.ipify.org/?format=json").then(r => r.json())).ip;
  //use ip
})();
它更短,更有趣


顺便说一句,不需要在客户端获取用户的IP,因为您在JS中发出的任何请求都将来自该客户端。这意味着无论哪台服务器接收到该请求,都将能够以本机方式查看IP,而无需像这样的黑客攻击


我不知道为什么第三方API会在客户端发出请求时请求您传递客户端IP—听起来像是一个糟糕的API。

这一切意味着什么?! 用户代理的每一位都表示系统的某些特定内容


没有“标准”的方式来编写用户代理字符串,因此不同的web浏览器使用不同的格式(有些格式差异很大),许多web浏览器将大量信息塞进用户代理中。这正是TismyBrowser.com介入的地方——我们解码您的用户代理字符串,以了解它所说的一切。

当然……它被称为谷歌……您首先应该在哪里查找。问外部资源的问题在这里是离题的,伙计…我搜索过谷歌,在一个大圈子里回来,没有发现任何东西,这就是为什么我在这里问这个问题的原因,有人可能会给我指出正确的方向可以从php中的
$\u服务器
获得正确的答案。。倒垃圾
(async () => {
  var ip = (await fetch("https://api.ipify.org/?format=json").then(r => r.json())).ip;
  //use ip
})();