نمایش نتایج 1 تا 21 از 21

نام تاپیک: کلاس اعتبار سنجی کد ملی

  1. #1

    کلاس اعتبار سنجی کد ملی

    سلام
    توی یکی از پروژه های خودم نیاز دیدم تا کدملی فرد رو اعتبارسنجی کنم و واسه همین توی نت جستجو کردم و فرمولش رو بدست آوردم و اونو تبدیل به یه کلاس کردم.
    حالا ممکنه بقیه دوستان هم به این کلاس نیاز داشته باشن. واسه همین به صورت dll میذارم تا استفاده کنید.
    دانلود کنید
    برای استفاده کافیه فایل رو Add refrence کنید و به صورت زیر کد بنویسید:

    if (Mahan.NationalCodeValidator.IsValid("1360645136") )
    {
    Response.Write("Is valid.");
    }
    else
    {
    Response.Write("Is invalid.");
    }

  2. #2
    کاربر دائمی آواتار Farshid007
    تاریخ عضویت
    بهمن 1389
    محل زندگی
    Karaj
    پست
    1,249

    نقل قول: کلاس اعتبار سنجی کد ملی

    مگه کد ملی چجوری باید باشه!

    ایا فقط تعداد ارقام مهمه؟
    والله کد ملی خودم اینه:
    031-139396-9

  3. #3
    کاربر دائمی
    تاریخ عضویت
    آذر 1389
    محل زندگی
    تهران
    پست
    857

    نقل قول: کلاس اعتبار سنجی کد ملی

    سلام
    دوست عزیز بابت زحمتی که کشیدی ممنون
    ولی به نظرت فکر نمیکنی که این مطلبت هیچ آموزشی نداشت؟
    اگه قرار باشه تمام کاربرایی که یه مطلب را برای دانلود میزارن مثل شما عنوان آموزش را براش بذارن میدونی چه اتفاقی میافته؟

    به هر حال این کارت اصولی نیست اما بابت تاپیکت ممنون

  4. #4
    کاربر دائمی آواتار AmirGhasemi
    تاریخ عضویت
    مرداد 1391
    محل زندگی
    تهران
    پست
    522

    نقل قول: کلاس اعتبار سنجی کد ملی

    داداش جان سورس validation را بگذار!!‌ بلانسبت شما بچه سوسول ها از dll بدون اينكه ندونن توش چيه استفاده مي كنن!!
    لطفا در صورت امكان سورس كامل را بگذار!

  5. #5

    نقل قول: کلاس اعتبار سنجی کد ملی

    نقل قول نوشته شده توسط Farshid007 مشاهده تاپیک
    مگه کد ملی چجوری باید باشه!

    ایا فقط تعداد ارقام مهمه؟
    والله کد ملی خودم اینه:
    031-139396-9
    سلام
    کد ملی شماره ای است 10 رقمی که از سمت چپ سه رقم کد شهرستان ، شش رقم بعدی کد منحصر به فرد برای فرد دارنده و رقم آخر آن هم یک رقم کنترل است که از روی 9 رقم سمت چپ بدست می آید. برای بررسی کنترل کد کافی است مجدد از روی 9 رقم سمت چپ رقم کنترل را محاسبه کنیم
    ساختار کد ملی
    1- برای محاسبه رقم کنترل از روی سایر ارقام ، هر رقم را در موقعیت آن ضرب کرده و حاصل را با هم جمع می کنیم.
    2- مجموع بدست آمده از مرحله یک را بر 11 تقسیم می کنیم
    3- اگر باقیمانده کمتر از 2 باشد ، رقم کنترل باید برابر باقیمانده باشد در غیر اینصورت رقم کنترل باید برابر یازده منهای باقیمانده باشد
    به عنوان مثال 4709450552
    باید از سمت چپ یکی یکی اعداد را از 10 به پایین ضرب کنیم البته تا 9 تا عدد یعنی 470945055
    40=10*4
    63=9*7
    0=8*0
    63=7*9
    24=6*4
    25=5*5
    0=4*0
    15=3*5
    10=2*5


    خوب حالا باید تمام این حاصلضرب ها رو با هم جمع کنیم
    که میشه 240
    حالا باید این عدد رو تقسیم بر 11 کنیم البته ما با باقیمانده تقسیم کار داریم
    اگر باقیمانده از 2 کوچکتر بود همون عدد میشه رقم آخر کد ملی
    اما اگر از 2 بیشتر بود 11 رو منهای باقیمانده میکنیم
    در این مثال باقیمانده عدد 9 میشه
    2=9-11
    پس کد اخر میشه عدد
    2 حالا به کد ملی ما نگاه کنید 4709450552
    شما هم میتونید از همین روش بفهمید که کد ملی درست وارد شده یا نه


    031-139396-9
    0*10=0
    3*9=27
    1*8=8
    1*7=7
    3*6=18
    9*5=45
    3*4=12
    9*3=27
    6*2=12
    0+27+9+7+18+45+12+27+12=156
    11-2=9

  6. #6
    کاربر دائمی آواتار AmirGhasemi
    تاریخ عضویت
    مرداد 1391
    محل زندگی
    تهران
    پست
    522

    نقل قول: کلاس اعتبار سنجی کد ملی

    يه سوال در مورد پست قبلي؟؟
    منظور از سه رقم سمت چپ كه كد شهرستان است چيه؟؟؟! اين كد از كجا مياد؟؟ يعني پيش كد تلفن؟؟! يا نه در يك ديتابيسي سازمان ثبت احوال به هر شهري يك كد داده است!!!
    من متولدين تهران را مي شناسم كه سه رقم سمت چپ كد ملي شون با هم تفاوت داره خب!!!!

  7. #7

    نقل قول: کلاس اعتبار سنجی کد ملی

    نقل قول نوشته شده توسط rrasheli مشاهده تاپیک
    سلام
    توی یکی از پروژه های خودم نیاز دیدم تا کدملی فرد رو اعتبارسنجی کنم و واسه همین توی نت جستجو کردم و فرمولش رو بدست آوردم و اونو تبدیل به یه کلاس کردم.
    حالا ممکنه بقیه دوستان هم به این کلاس نیاز داشته باشن. واسه همین به صورت dll میذارم تا استفاده کنید.
    دانلود کنید
    برای استفاده کافیه فایل رو Add refrence کنید و به صورت زیر کد بنویسید:

    if (Mahan.NationalCodeValidator.IsValid("1360645136") )
    {
    Response.Write("Is valid.");
    }
    else
    {
    Response.Write("Is invalid.");
    }
    سلام
    اگه امکانش هست سوس کد بزار

  8. #8
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1390
    محل زندگی
    چند قدم اون ور تر
    پست
    1,731

    نقل قول: کلاس اعتبار سنجی کد ملی

    نقل قول نوشته شده توسط AmirGhasemi مشاهده تاپیک
    يه سوال در مورد پست قبلي؟؟
    منظور از سه رقم سمت چپ كه كد شهرستان است چيه؟؟؟! اين كد از كجا مياد؟؟ يعني پيش كد تلفن؟؟! يا نه در يك ديتابيسي سازمان ثبت احوال به هر شهري يك كد داده است!!!
    من متولدين تهران را مي شناسم كه سه رقم سمت چپ كد ملي شون با هم تفاوت داره خب!!!!
    سلام
    به هر شهرستان یک کدی داده شده حالا لیستو ببینی تا حدودی منطقش دستت میاد. اینجا به صورت استانی کد شهرستان ها جمع آوری شده، یکی دو مورد رو چک کردم درست بودن.

  9. #9

    نقل قول: کلاس اعتبار سنجی کد ملی

    نقل قول نوشته شده توسط AmirGhasemi مشاهده تاپیک
    يه سوال در مورد پست قبلي؟؟
    منظور از سه رقم سمت چپ كه كد شهرستان است چيه؟؟؟! اين كد از كجا مياد؟؟ يعني پيش كد تلفن؟؟! يا نه در يك ديتابيسي سازمان ثبت احوال به هر شهري يك كد داده است!!!
    من متولدين تهران را مي شناسم كه سه رقم سمت چپ كد ملي شون با هم تفاوت داره خب!!!!
    slm
    bebakhshid enslish minvisam farsi az to systemam pak shode.
    in 3 ragham bara har shahrestan tarif shode hast.ke ehtemalan ham daste sabte ahval hastesh.
    mesle pelak mashin ke 11,22,33,... bara tehrane :D
    bara code meli ham bara khode man ke motevalede tehran hastam 008 hatesh.

  10. #10
    کاربر دائمی آواتار uniqueboy_ara
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    تهران
    پست
    420

    نقل قول: کلاس اعتبار سنجی کد ملی

    اینم تابعی که بنده طبق فرمایشات دوستمون نوشتم: :)
    bool CheckValidation(string MelliCode)
    {
    int sum = 0;
    int number=0;
    if (MelliCode.Length == 10 && int.TryParse(MelliCode, out number))
    {
    int counter = 10;
    for (int i = 0; i <= 8; i++)
    {
    int digit = int.Parse(Convert.ToString(MelliCode[i]));
    sum += digit * counter;
    counter--;
    }
    sum %= 11;
    if (sum < 2)
    {
    if (MelliCode[9] == '2')
    return true;
    else
    return false;
    }
    else
    {
    string x = Convert.ToString(11 - sum);
    string z = Convert.ToString(MelliCode[9]);
    if (z == x)
    return true;
    else
    return false;
    }
    }
    else
    {
    return false;
    }
    }
    آخرین ویرایش به وسیله uniqueboy_ara : سه شنبه 14 شهریور 1391 در 11:18 صبح

  11. #11
    کاربر دائمی آواتار Farshid007
    تاریخ عضویت
    بهمن 1389
    محل زندگی
    Karaj
    پست
    1,249

    نقل قول: کلاس اعتبار سنجی کد ملی

    http://csharpdotnet.blogsky.com/1390/06/25/post-263/
    به این هم یه سر بزنید بد نیست!

  12. #12
    کاربر دائمی
    تاریخ عضویت
    آذر 1389
    محل زندگی
    تهران
    پست
    857

    نقل قول: کلاس اعتبار سنجی کد ملی

    [QUOTE]

    مجموع بدست آمده از مرحله یک را بر 11 تقسیم می کنیم
    اگر باقیمانده کمتر از 2 باشد ، رقم کنترل باید برابر باقیمانده باشد در غیر اینصورت رقم کنترل باید برابر یازده منهای باقیمانده باشد
    [QUOTE/]

    سلام
    دوست عزیز منظروت از یان که کمتر از 2 باشه آیا خود 2 هم قبوله؟
    یعنی فقط باید 0و 1 را چک کنیم یا اینکه 2 نیز جز همین دسته محسوب میشه /
    ممنون میشم پاسخ بدید


    مرسی

  13. #13
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: کلاس اعتبار سنجی کد ملی

    واقعاً طراح کد ملی چیزی از CRC و واژه ی Cyclic میفهمیده؟من شک دارم

  14. #14
    کاربر دائمی
    تاریخ عضویت
    آذر 1389
    محل زندگی
    تهران
    پست
    857

    نقل قول: کلاس اعتبار سنجی کد ملی

    نقل قول نوشته شده توسط FastCode مشاهده تاپیک
    واقعاً طراح کد ملی چیزی از CRC و واژه ی Cyclic میفهمیده؟من شک دارم
    سلام
    واقعا با نظر موافقم
    کلا فقط همه چیز به اون رقم اخرش ارتبط داره و هیچ راه تست کردنی هم نیست
    یعنی اگه کاربر یکم زرنگ باشه میتونه برای رقم اخر اعداد مختلف را تست کنه تا بالاخره یکیش جواب بده

    اگه کار خیلی مهم باشه یعنی داخل پروژه ای که داریم کار میکنیم صحت کد ملی اهمیت زیادی داشته باشه میتونیم محل صدور کاربر را هم بگیریم و با اون جدولی که دوستمون زحمت کشیده بودن و لینک داده بودن چک کنیم شاید این مزخرف بودن ساختار کدملی را بتونیم یکم پوشش بدیم

    دوستان کسی نظر دیگه ای داره؟
    خوشحال میشم از تجربیات شما ها هم استفاده کنم

  15. #15

    نقل قول: کلاس اعتبار سنجی کد ملی

    [QUOTE/]
    سلام
    دوست عزیز منظروت از یان که کمتر از 2 باشه آیا خود 2 هم قبوله؟
    یعنی فقط باید 0و 1 را چک کنیم یا اینکه 2 نیز جز همین دسته محسوب میشه /
    ممنون میشم پاسخ بدید
    مرسی[/QUOTE]

    سلام بله فقط 0و1 بود درسته تو مثال دومي كه با كد ملي دوستمون Farshid007 زدم نگاه كنيد باقيمانده 2 شده و 11 رو از 2 كم كرديم و جواب شد 9 همون رقم آخر كد ملي دوستمون.

    واقعاً طراح کد ملی چیزی از CRC و واژه ی Cyclic میفهمیده؟من شک دارم 						

    نمي دونم چي بايد گفت.من شنيدم كه براي طراحي دلار آمريكا يك گروه شش سال وقت گذاشتند احتمالا اين بنده هاي خدا هم شش دقيقه وقت گذاشتند ديگه.

  16. #16
    کاربر تازه وارد
    تاریخ عضویت
    خرداد 1391
    محل زندگی
    تهران
    پست
    49

    نقل قول: کلاس اعتبار سنجی کد ملی

    كد هاي جدول شهرستانها رو ببينيد ؟

    به نظر شما چه ارتباط منطقي بين نقاط مختلف وجود داره ؟

    از نظر پراكندگي جغرافيايي هم كه نيگا مي كني خيلي در همه .

    از اون جدوله كه بگذريم ، چندتايي كه من تست كردم درست دراومد.

  17. #17

    نقل قول: کلاس اعتبار سنجی کد ملی

    با سلام
    دوستان کسی میتونه بگه چطوری از کد ملی می توان شهر محل تولد را تشخیص داد
    البته الگوریتمش را می دونم فقط نمی دونم چطوری توی برنامه تعیین صحت کد ملی ازش استفاده کنم.
    ممنون میشم پاسخ بدید.

  18. #18
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1390
    محل زندگی
    چند قدم اون ور تر
    پست
    1,731

    نقل قول: کلاس اعتبار سنجی کد ملی

    نقل قول نوشته شده توسط ali*** مشاهده تاپیک
    با سلام
    دوستان کسی میتونه بگه چطوری از کد ملی می توان شهر محل تولد را تشخیص داد
    البته الگوریتمش را می دونم فقط نمی دونم چطوری توی برنامه تعیین صحت کد ملی ازش استفاده کنم.
    ممنون میشم پاسخ بدید.
    سلام
    خب توی پست 8 یه لینک دادم، باید اون کدها رو توی فایل متنی، xml یا بانک اطلاعاتی داشته باشید بعد چک کنید ببینید کد ملی نوشته شده با کدوم یکی از اونها شروع میشه ...

  19. #19

    Thumbs up نقل قول: کلاس اعتبار سنجی کد ملی

    نقل قول نوشته شده توسط Farshid007 مشاهده تاپیک
    مگه کد ملی چجوری باید باشه!

    ایا فقط تعداد ارقام مهمه؟
    والله کد ملی خودم اینه:
    031-139396-9

    با سلام
    دوستان عزیز
    لازم دیدم که این کد رو به صورت خیلی ساده برای دوستان با سورس کامل اراپه بدم
    این کدهارو تو #c نوشتم
    یک فرم ایجاد کنید و یه textbox و button
    بعد تو قسمت button کد زیرو وارد کنید.



    private void button1_Click(object sender, EventArgs e)
    {
    char []a;
    a=textBox1.Text.ToCharArray();
    var meli_code=a.ToArray();
    string meli_code1=meli_code.ToString();
    int c,n,r;
    if (meli_code.Length == 10)
    {
    if(meli_code1=="1111111111" || meli_code1=="2222222222" || meli_code1=="3333333333" || meli_code1=="4444444444" || meli_code1=="5555555555" || meli_code1=="6666666666" || meli_code1=="7777777777" || meli_code1=="8888888888" || meli_code1=="9999999999" )
    {
    MessageBox.Show("کد ملی صحیح نیست");
    }
    else
    {
    c = int.Parse(a[9].ToString());
    n = int.Parse(a[0].ToString())*10 + int.Parse(a[1].ToString())*9 + int.Parse(a[2].ToString())*8 + int.Parse(a[3].ToString())*7 + int.Parse(a[4].ToString())*6 + int.Parse(a[5].ToString())*5 + int.Parse(a[6].ToString())*4 + int.Parse(a[7].ToString())*3 + int.Parse(a[8].ToString())*2;
    r = n - (n/11)*11;
    if ((r == 0 && r == c) || (r == 1 && c == 1) || (r > 1 && c == 11 - r))
    {
    MessageBox.Show("کد ملی صحیح می باشد");
    }
    else
    {
    MessageBox.Show("کد ملی وارد شده معتبر نمی باشد");
    }
    }
    }
    else
    {
    MessageBox.Show("error");
    }
    }


    بهزاد میرزازاده


  20. #20
    کاربر دائمی
    تاریخ عضویت
    آبان 1389
    محل زندگی
    ایران
    پست
    148

    نقل قول: کلاس اعتبار سنجی کد ملی

    public class NationalCodeValidator    {
    public int AddToList(string nationalCode, out int lastNumber)
    {
    string str = nationalCode;
    List<int> list = new List<int>();
    if (str.Length < 10)
    {
    lastNumber = 0;
    return 0;
    }
    for (int i = 0; i < str.Length; i++)
    {
    list.Add(int.Parse(str.Substring(i, 1)));
    }
    lastNumber = this.GetFlag(list);
    return this.Sum(list);
    }


    public bool Calculate(int sum, int lastNumber)
    {
    int num = sum % 11;
    if (num > 2)
    {
    return (lastNumber == (11 - num));
    }
    return (lastNumber == num);
    }


    public int GetFlag(List<int> nationalCode)
    {
    return nationalCode[nationalCode.Count - 1];
    }


    public static bool IsValid(string nationalCode)
    {
    int num;
    NationalCodeValidator validator = new NationalCodeValidator();
    int sum = validator.AddToList(nationalCode, out num);
    return ((sum != 0) && validator.Calculate(sum, num));
    }


    public int Sum(List<int> list)
    {
    int result = 0;
    int i = 10;
    list.RemoveAt(list.Count - 1);
    list.ForEach(delegate (int x) {
    result += x * i--;
    });
    return result;
    }
    }

  21. #21

    نقل قول: کلاس اعتبار سنجی کد ملی

    private bool IsNationalCode(string NCode)    {
    const int n = 10;
    if (NCode.Length != n)
    throw (new Exception("کد ملی باید 10 رقم باشد!"));
    else
    {
    int l = 0, k;
    for (int i = 0; i < n - 1; i++)
    {
    try { k = Convert.ToInt16(NCode[i].ToString()); }
    catch { throw (new Exception("کد ملی فقط از عدد تشکیل شده است!")); }
    l += k * (n - i);
    }
    l %= 11;
    return (l > 2) ? (11 - l) == Convert.ToInt16(NCode[n - 1].ToString()) : l == Convert.ToInt16(NCode[n - 1].ToString());
    }
    }

تاپیک های مشابه

  1. آموزش: کلاس اعتبار سنجی کد ملی
    نوشته شده توسط sqlcommandbuilder در بخش VB.NET
    پاسخ: 6
    آخرین پست: یک شنبه 17 شهریور 1392, 12:17 عصر
  2. پاسخ: 6
    آخرین پست: چهارشنبه 24 خرداد 1391, 01:13 صبح
  3. سوال: درخواست ماژول اعتبار سنجی کد ملی برای اکسس
    نوشته شده توسط royasaz_bam در بخش Access
    پاسخ: 2
    آخرین پست: چهارشنبه 09 شهریور 1390, 02:38 صبح
  4. اعتبار سنجی مقادیر وارد شده
    نوشته شده توسط ali643 در بخش Classic ASP
    پاسخ: 8
    آخرین پست: چهارشنبه 04 خرداد 1384, 20:28 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •