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