Определите идентификатор компьютера в игре Flash/AIR
Я создаю многопользовательскую онлайн-игру, в которой я хочу запретить игрокам присоединяться к игре, используя несколько клиентов / учетных записей на одном компьютере. Я не могу просто выполнить проверку IP-адреса на стороне сервера, потому что я все еще хочу, например, чтобы люди в одном офисе могли играть вместе.
Поэтому я хотел бы сгенерировать некоторый идентификатор компьютера / хэш на клиенте, который он отправляет на сервер. Я знаю, что это легко взломать, но это остановит по крайней мере тех "читеров", которые не могут или не будут менять свое клиентское программное обеспечение.
Есть ли способ создать такой идентификатор / хэш в моем игровом клиенте? Это сделано во Flash и AIR (есть две версии, браузер и рабочий стол). Значение не должно быть глобально уникальным, потому что я проверю IP-address + ID
2 ответа
Вы можете использовать MAC-адрес сетевой карты. AIR имеет доступ к списку всех доступных сетевых интерфейсов: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/NetworkInfo.html
NetworkInfo.networkInfo.findInterfaces()
Вы должны иметь возможность использовать любое значение, возвращаемое в этом векторе, поскольку MAC-адреса уникальны.
Наряду с MAC-адресом ваша программа может генерировать одно или несколько случайных чисел и сохранять их в зашифрованном локальном хранилище (если оно еще не сохранено). Это может также идентифицировать пользователей (с некоторой вероятностью коллизий, но эта вероятность может быть очень низкой).