我正在寻找一个脚本来捕获提交表单的人的IP地址。我最终在响应表中写下了这段代码:
/*
* Global Variables
*/
// Form
var formId = 'FromID';
// Sheet
var sheetName = 'Form Responses 1';
var columnName = 'IP Address';
// Responses starting row
var startRow = 2;
function UploadIPAddress_FromSheet(){
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues();
var columnIndex = headers[0].indexOf(columnName);
var data = sheet.getDataRange().getValues();
var form = FormApp.openById(formId);
for(var i = startRow-1; i < data.length; i++) {
if(data[i][0] && !data[i][columnIndex]) {
var ip = JSON.parse(UrlFetchApp.fetch('https://api6.ipify.org?format=json')).ip;
sheet.getRange(i+1, columnIndex+1).setValue(ip);
}
}
}
当我手动运行脚本时,它会用我的IP地址填充最后一个响应行的"IP地址“列,这是预期的。但是,当我提交带有触发器的表单以运行脚本时,它执行相同的操作,但使用的是Google服务器IP地址。
你知道如何通过表单提交来实现第一个输出吗?
非常感谢
发布于 2020-09-11 10:58:01
不幸的是,这是不可能的。你必须寻找替代的表单服务。
https://stackoverflow.com/questions/63840028
复制相似问题