Я думаю, что лучший способ сделать это - обслуживать разные веб-страницы с вашего сервера после считывания IP-адреса, связанного с входящим запросом. Таким образом, он почти невидим для клиента. Нечто подобное в Экспрессе будет работать.
app.get("/", (req,res) => {
if (req.ip === "127.0.0.1") {
res.sendFile("index-no-exe.html")
} else {
res.sendFile("index-with-exe.html"
})
Это можно сделать и в браузере. Вы можете скрыть или удалить элемент кнопки после получения их IP-адреса от службы, но это может быть легко изменено. Смотрите этот SO пост.