将Python脚本的使用限制在一台特定的计算机上?

将Python脚本的使用限制在一台特定的计算机上?,python,limit,Python,Limit,如果这个问题太模糊,我提前表示歉意,但是通常应该如何将脚本的使用限制在一台特定的计算机上呢?这个脚本不是商业产品——它只针对一个普通的计算机用户。(所以这个方法不应该太复杂——我个人对这个问题的知识有限)提前谢谢 由于知识有限,我认为这是不可能的,因为你给出的是一个脚本 假设函数A是负责限制脚本在特定计算机上运行的函数。因为python脚本是一个可编辑的脚本,所以可以删除该代码块,即函数a,然后运行其余的代码 这在编译语言中是可能的, 但在诸如python之类的脚本语言中并非如此 如果,而且仅当

如果这个问题太模糊,我提前表示歉意,但是通常应该如何将脚本的使用限制在一台特定的计算机上呢?这个脚本不是商业产品——它只针对一个普通的计算机用户。(所以这个方法不应该太复杂——我个人对这个问题的知识有限)提前谢谢

由于知识有限,我认为这是不可能的,因为你给出的是一个脚本

假设函数A是负责限制脚本在特定计算机上运行的函数。因为python脚本是一个可编辑的脚本,所以可以删除该代码块,即函数a,然后运行其余的代码

这在编译语言中是可能的,
但在诸如python之类的脚本语言中并非如此

如果,而且仅当你与一个普通的非程序员打交道时,那么有很多方法可以实现这一点,即通过网络与家庭计算机建立互联网连接

因此,在确定特定计算机是否是允许程序运行的计算机时,控制责任

if (connection.call_home):
    #run
else:
    #pass
您的主脚本将是:

if (incoming.ip == '123.456.789.101'):
    return true
else:
    return false

可能您应该将脚本运行限制在该特定计算机的MAC地址。

您可以使用返回MAC地址的
uuid.getnode()
将脚本绑定到计算机的MAC地址。那么在你的剧本中你会

import uuid
if uuid.getnode() != #precomputed number:
    raise SystemExit()

您需要更改脚本的权限,以确保它无法编辑。

我明白了,谢谢。你知道有什么方法让别人编辑Python脚本变得异常困难吗?如果你只有编译版本呢?(.pyo扩展名)使用类似py2exe的东西,exe文件只是一个包含pyo文件的简单存档。您可以这样做:编写1000000行代码以隐藏实际工作代码。如果用户只是删除检查MAC地址的行怎么办?甚至,欺骗MAC地址。为什么要将源代码提供给用户,使其成为.exe并提供该文件。考虑到“普通用户”,我给出了这个解决方案,假设MAC地址欺骗无法实现。权限可以被覆盖。或者它可以被复制,粘贴而不需要那块代码。但是如果它是编译的?@taesu如果权限设置为
444
,那么复制就不是那么简单了。我想我会说普通的计算机用户做不到。@TheNovice对不起,我不知道你说的“如果它被编译了”是什么意思。你是在Windows上使用py2exe还是别的什么?我为那句话的模糊性道歉。它是在提到“如果你只有编译版本(.pyo扩展名),使用类似py2exe的东西,exe文件只是一个包含pyo文件的简单存档”,那该怎么办呢。让脚本通过py2exe“编译”对我有什么帮助吗?一般的计算机用户是一个模糊的术语,以任何形式的答案为基础。非程序员,或者更确切地说,一般编程知识有限的用户,可能是更好的术语?