从 Google Web App 检索公共 IP

mrf*_*chs 3 google-apps-script

Google Scripts 文档没有描述从作为 Web 应用程序发布的 Google Apps 脚本中检索客户端 IP 地址的任何方法。

可以做到吗?

Mog*_*dad 6

客户端对已发布 Web 应用程序的访问通过 Google 的代理进行引导,因此任何获取客户端 IP 的尝试都将报告代理的 IP。

没有提供客户端 IP 的服务 API,但我们可以通过 HTML 服务使用外部 javascript 库。

以下是改编自How to get client's IP address only using javascript?

代码.gs

function doGet(e) {
  return HtmlService.createHtmlOutputFromFile('getIp');
}
Run Code Online (Sandbox Code Playgroud)

获取IP.html

<script type="application/javascript">
  function getip(json){
    alert(json.ip); // alerts the ip address
  }
</script>
<script type="application/javascript" src="http://jsonip.appspot.com/?callback=getip"></script>
Run Code Online (Sandbox Code Playgroud)

结果

在一项测试中,警报弹出216.191.234.70。查找该IP:

截屏

那绝对不是我的IP地址。

结论:不,您无法使用 Google Script 检索用户的公共 IP 地址。