Что такое IMEI телефона и для чего он нужен

Что такое IMEI телефона и для чего он нужен

Att-IMEIIMEI (International Mobile Equipment Identity) расшифровывается как “международный идентификатор мобильного оборудования”,- это уникальное число, которое присваивается каждому мобильному телефону, а так же некоторым спутниковым телефонам. Обычно оно отпечатано в батарейном отсеке устройства. Так же его можно вывести на экран, введя с клавиатуры последовательность *#06#. Сменить IMEI у современного телефона без перепрограммирования микросхем или их замены нельзя, так как обычно этот идентификатор зашит в микросхеме ПЗУ.

Идентификатор IMEI используется в GSM сетях для идентификации действующих в сети устройств, и следовательно по нему можно отследить украденный сотовый телефон и заблокировать его доступ в сеть. Например, если владелец украденного телефона сообщит о краже своему сотовому оператору и попросит внести аппарат в “чёрный список” по номеру IMEI, то для этой и некоторых других сетей телефон станет абсолютно бесполезен, и при этом не важно, менялась ли СИМ-карта, установленная в телефоне.

IMEI используется только для идентификации устройства, с которого осуществляется выход в сеть, он никак не относится к владельцу аппарата. Владелец определяется с помощью другого номера – IMSI (International Mobile Subscriber Identity – международный идентификатор абонента), который хранится в СИМ-карте. Теоретически идентификатор IMSI может быть подделан и использован с любыми телефонами, но во многих сотовых сетях стоит защита, например, этот идентификатор посылается во время сеанса связи очень редко во избежание его перехвата.

Читайте также:  Во Франции построят 1000-километровую дорогу из солнечных панелей

Идентификатор IMEI обычно содержит содержит 15 цифр. Первые восемь цифр – это идентификатор TAC, причём первые две цифры в этом TAC коде обозначают страну. Следующие шесть цифр обозначают серийный номер устройства, а последняя, 15 цифра является контрольной, с её помощью проверяется правильность всех цифр по алгоритму Луна.

Алгоритм Луна используется для проверки контрольной суммы идентификатора IMEI, он позволяет выявить все одиночные ошибки и почти все варианты перестановок соседних чисел. Исключение составляют только цифры 9 и 0, расположенные на соседних позициях, их перестановка алгоритмом не выявляется (например, если переставить смежные числа 90 и 09, то это не обнаружится).

Рассмотрим пример проверки правильности идентификатора IMEI 359223015426526, содержащего 15 цифр:

1. Отбрасываем самую правую контрольную цифру – останется 14 цифр: 35922301542652
2. Считая справа налево суммируем все цифры, расположенные на чётных позициях – второй, четвёртой, шестой и т.д. –3592231542652
3+9+2+0+5+2+5 = 26
3. Все числа меньше пяти, расположенные на нечётных позициях, следует умножить на два и сложить между собой, а если число больше четырёх, то при умножении на два из результата следует вычесть число девять:
5*2-9+2*2+3*2+1*2+4*2+6*2-9+2*2 = 28
4. Суммируем полученные результаты: 26+28 = 54
5. Получившееся число делим по модулю на десять: 54 mod 10 = 4
6. Если получился ноль, то результат равен нулю, если же полученное число больше нуля, то отнимаем это число от десяти: 10 – 4 = 6.

Читайте также:  Локализация как еще один шаг навстречу клиентам

В этом примере мы получили число 6, которое равно контрольному числу, следовательно цифры IMEI идентификатора верны.

Онлайн проверка правильности IMEI:

OK – 6

И в заключение – пример реализации алгоритм вычисления контрольной цифры на Delphi:

function GetLuhn( Num:string):integer;
var p, sum, N, i:integer;
begin
   sum := 0;
   N := Length(Num);

   for i := 1 to N-1 do

   begin
     p := StrToInt(Num[Length(Num)-i]);
     if (i mod 2) <> 0 then

     begin
       p :=p*2;
       if p > 9 then p:=p - 9;
     end;
     sum :=sum+p;
   end;
   if ((sum mod 10) = 0) then sum:=0 else sum := 10 - (sum mod 10);
   Result:=sum;

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Caption:=IntToStr(GetLuhn('359223015426526'));
end;

смотрите также: