Click here to Skip to main content
12,893,086 members (59,777 online)
Click here to Skip to main content
Add your own
alternative version

Tagged as

Stats

37.8K views
14 bookmarked
Posted 18 Dec 2011

Mobile IMEI Validation

, 21 Dec 2011 CPOL
Rate this:
Please Sign up or sign in to vote.
We all know that every Mobile Module has one unique number, i.e., IMEI(International Mobile Equipment Identity). The IMEI (14 decimal digits plus a check digit) or IMEISV (16 digits) includes information on the origin, model, and serial number of the device.

Now I am going to tell the Luhn checksum/check digit validation for the given IMEI no.

one can calculate the IMEI by choosing the check digit that would give a sum divisible by 10. For the example IMEI 49015420323751?,
IMEI	49015420323751?
Double every other	
4 18 0 2 5 8 2 0 3 4 3 14 5 2  ?
Sum digits: 4 + (1 + 8) + 0 + 2 + 5 + 8 + 2 + 0 + 3 + 4 + 3 + (1 + 4) + 5 + 2 + ? = 52 + ?
To make the sum divisible by 10, we set ? = 8, so the IMEI is 490154203237518.


The below code is written in C#, for Check Digit Calculation.

private Boolean ValidateIMEI(string IMEI)
       {
           if (IMEI.Length != 15)
               return false;
           else
           {
               Int32[] PosIMEI = new Int32[15];
               for (int innlop = 0; innlop < 15; innlop++)
               {
                   PosIMEI[innlop] = Convert.ToInt32(IMEI.Substring(innlop, 1));
                   if (innlop % 2 != 0) PosIMEI[innlop] = PosIMEI[innlop] * 2;
                   while (PosIMEI[innlop] > 9) PosIMEI[innlop] = (PosIMEI[innlop] % 10) + (PosIMEI[innlop] / 10);
               }
 
               Int32 Totalval = 0;
               foreach (Int32 v in PosIMEI) Totalval += v;
               if (0 == Totalval % 10)
                   return true;
               else
                   return false;
           }
 
       }


Thanks..,

*** Alternatives are welcome.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Rajesh Anuhya
Software Developer (Senior)
India India
No Biography provided

You may also be interested in...

Comments and Discussions

 
Questionmy java implementation Pin
gemu16-Oct-13 10:24
membergemu16-Oct-13 10:24 
GeneralReason for my vote of 5 Nice Tip/Trick Pin
thatraja26-Jan-12 22:23
mvpthatraja26-Jan-12 22:23 
GeneralRe: Thanks Raja --RA Pin
Rajesh Anuhya26-Jan-12 22:29
memberRajesh Anuhya26-Jan-12 22:29 
GeneralReason for my vote of 5 helpfull Pin
m9gi8-Jan-12 3:29
memberm9gi8-Jan-12 3:29 
GeneralRe: Thanks m9gi Pin
Rajesh Anuhya19-Jan-12 0:14
memberRajesh Anuhya19-Jan-12 0:14 
GeneralReason for my vote of 5 Nice tip to validate IMEI numbers me... Pin
Sridhar Patnayak2-Jan-12 6:28
memberSridhar Patnayak2-Jan-12 6:28 
GeneralRe: Thanks Sridhar Pin
Rajesh Puli2-Jan-12 16:10
memberRajesh Puli2-Jan-12 16:10 
GeneralGood work. Pin
JigneshSE26-Dec-11 17:48
memberJigneshSE26-Dec-11 17:48 
Generalgood work. I solved my problem for ur help. how can i checke... Pin
thileep201021-Dec-11 6:28
memberthileep201021-Dec-11 6:28 
GeneralGood one, nice to know how to validate IMEI numbers Pin
danlobo18-Dec-11 23:29
memberdanlobo18-Dec-11 23:29 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web01 | 2.8.170424.1 | Last Updated 21 Dec 2011
Article Copyright 2011 by Rajesh Anuhya
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid