если нет инета то привязка может быть только к железу (серийный код материнской платы).
для того чтобы в php их получить надо писать свое расширение для php на С.
но если честно даже так его будет просто взломать, просто убрав проверку в php. чтобы убрать было сложнее нужно файл с функцией которая проверяет зашифровать любым php энкриптором, в этом файле обязательно должны быть рабочие функции необходимые для обычной работы, иначе можно будет просто удалить инклюд этого файла.
сомневаюсь что вы будете заморачиваться с написанием php экстеншена, хотя и он простой по функционалу, нужно разбираться с zend engine api.
также аналогичный, но более простой вариант -
написать простую программу на с++ например, можно консольную,
которая извлекает этот сериал материнской.
подойдет любой компилируемый язык (C, C++, C#, наверное даже pascal или basic), программа будет простая
https://www.google.ru/webhp?q=get+motherboard+serial (добавьте любой ЯП)
далее зашифрованная функция будет также запускать его через exec, со спец параметрами и получать вывод из нее (желательно их общение сделать запутанным, чтобы было сложно написать подобную программу, которая просто вернет то что хочет php).
php файл с функцией обязательно заэнкодить. просто обфусцировать php - защита от дурака, более менее грамотный легко вскроет.
ps пока писал, придумал еще вариант - исопльзовать mac адрес сетевухи.
программу на С писать не придется тк можно использовать встроенные консольные команды ОС
нужно парсить вывод
exec('ipconfig /all')
как минимум искать нужный мак адрес.