Du solltest den Arbeitsaufwand in die Verbesserung deines Produktes stecken, damit die Kunden gerne eine Lizenz besorgen und die paar ohne Lizenz das Kraut auch nicht fett machen.
Die einzige Möglichkeit, das ganze halbwegs sicher zu bekommen ist eine assymmetrisch verschlüsselte Datei, die du zusammen mit dem Public Key mit auslieferst. Für jeden Kunden eine neue Datei mit neuem Schlüssel. Den Privaten hälts du dir vor. Dein Skript entschlüsselt die Datei mit dem mitgelieferten Key und gleicht die Daten ab.
Wenn du die Überprüfung mehrfach verbaust und entsprechend mit deinen Kernkomponenten verdrahtest ist auch das entfernen nicht ganz so einfach.
Die zweite Stufe wäre ein pingback aus dem Skript heraus an einen deiner Server. Bleibt der irgendwann aus,
prüfst du die Erreichbarkeit des Angebots. Ist es nicht erreichbar, ist alles in Ordnung, ist es erreichbar, dann hat er den Pingback entfernt und du kannst mal freundlich anfragen, warum.
Alles zwar umgehbar, aber wer sich die Mühe macht, das alles auszuhebeln, der wird auch alles andere umgehen können