gpt4 book ai didi

php - 我能确定下载我的程序的用户是否真的安装了它吗?

转载 作者:行者123 更新时间:2023-12-04 05:12:02 24 4
gpt4 key购买 nike

我制作了一些可以免费下载的软件,希望它能被接受。当他们向我发送流量时,我向几个附属公司付款,现在它的工作方式是我给每个附属公司一个唯一的链接,只有当我的软件被实际下载时,附属公司才会被记入。
但是,如果我可以跟踪用户是否实际安装了该软件,那将是最理想的。有什么方法可以在不需要用户注册软件的情况下做到这一点吗? (请记住,我需要知道用户是由哪个附属机构推荐的)

本来我想在用户的浏览器上创建一个带有联盟成员(member)ID的cookie,然后当软件安装完成时,它会打开一个浏览器显示一个感谢页面,此时我可以读取cookie并弄清楚该用户与哪个附属机构相关联。但是,如果使用用户默认浏览器以外的任何浏览器下载软件,则这不起作用......

我的另一个想法是将用户的 IP 地址存储在数据库中,然后在打开“感谢”页面时将其匹配,但是当用户是大型网络(例如大学)的一部分时,这将无法正常工作。

有什么建议吗?

最佳答案

Another idea I had was storing the user's IP address in a database, and then matching that up when the Thank You page is opened, but this wouldn't work well when users are part of a large network, such as at a university.



向每个用户发送一个带有个性化名称的安装程序(例如 binary01、binary02、binary03...)。让安装程序在下载时读取自己的名称,并将其作为 GET 参数放入谢谢页面,即 http://www.yoursite.com/thankyou?exe=binary03 .

服务器上的二进制文件始终是同一个文件,但下载器会为每个附属机构报告不同的名称(或者您可以保留同一个二进制文件的多个副本,但这样更难以保持同步)。

例如,这可能是一个下载链接:
<?php
// Download URL, of the form http://www.yoursite.com/download.php?aff=AffName
// You can rewrite this with Apache's mod_rewrite and have .../filename-AffName.exe

$affiliates = array(
// You can keep these in a database
"widgets" => "Widgets'r'us",
"foobar" => "Foo's Software Bar",
);

$aff = isset($_GET['aff']) ? $_GET['aff'] : 'unaffiliated';
$base = "YourBinary";
$ext = '.exe';

$file = $base.$ext;
$name = $base.'-'.$aff.$ext;

Header("Content-Disposition: attachment; filename=" . urlencode($name));
Header("Content-Type: application/force-download");
Header("Content-Type: application/octet-stream");
Header("Content-Type: application/download");
Header("Content-Description: File Transfer");
Header("Content-Length: " . filesize($file));

readfile($file);
?>

至于如何读取包名,这将取决于安装程序。 InnoSetup 会将信息导出为脚本变量 {srcexe} , Advanced Installer 会将其设为 [SETUPEXEDIR],依此类推。

但是,如果碰巧许多用户下载安装(例如在工作中、在网吧等),然后在没有 Internet 连接的情况下运行它,您可能希望将其提升为“首次安装注册”功能。您可能希望在安装时将“InstallationID”注册表值存储到附属名称(通过从可执行文件中读取它),然后程序可能会查找它并尝试将其交换为数字 ID 或 UUID(如果不是)。

通过这种方式,您可以两全其美,不要惹恼客户(“无法在没有 Internet 连接的情况下安装!Yeeech!”),甚至可以在讨价还价时获得 UUID。

关于php - 我能确定下载我的程序的用户是否真的安装了它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14807093/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com