انجمن


آموزش :تشخیص کاربران داخلی از خارجی  (۲ نوشته)

  • 1nafar

    آفلاین
    عضو
    تعداد نوشته‌ها: ۶
    تشکر شده: ۲ بار
    # نوشته شده: ۱۰ سال پیش
    ۱۸ مرداد ۱۳۹۲ - ۱۳:۵۶

    سلام
    توی ایران سایت های زیادی در زمینه ی دانلود و به اشتراک گذاری نرم افزار فعالیت دارن . در این سایت ها ، کاربران میتونن نرم افزار های پولی رو به صورت رایگان و از لینک مستقیم دانلود کنن .
    راه اندازی سایت و وب مستری ، مانند هر کار دیگه ای سختی ها و مشکلات خاص خودش رو داره ، اما یکی از مشکلات عمده ی وب مستران ایرانی بلوکه شدن لینک های دانلود از طرف سرور و خصوصا آپلود سنتر های رایگان هست .
    مشکلی که برای من به عنوان مدیر یکی از سایت های فعال در زمینه ی دانلود نرم افزار های تخصصی رشته های برق و الکترونیک بار ها پیش اومده و همیشه مدیریت آپلود سنتر 4shread یا mediafire.com فایل های من رو به دلیل نقض قوانین کپی رایت بلوکه یا حذف کرده .
    گزارش دهی لینک های وارز به مدیریت هاست یا آپلود سنتر های رایگان معمولا توسط تولید کننده گان نرم افزار انجام میشه ، این افراد نام نرم افزار رو به همراه کلید واژه های مثله null ، full ، with crack و... در گوگل جستوجو میکنن و مواردی که ناقض کپی رایت هستند رو گزارش میدن . مدیریت هاست یا اپلود سنتر هم ناچارا یا باید کاربر و اکانتش رو حذف کنه یا با بلوکه کردن فایل و ارسال یک هشدار به کاربر مسائله رو حل کنه .
    از طرف دیگه کاربران خارجی به نسخه ی کامل نرم افزار دسترسی دارن و میتونن مجوز اون رو خریداری کنن ، پس دلیلی نداره پهنای باند سایت برای اونا به هدر بره و این کار از نظر اخلاقی هم درست نیست ( قطعا کاربران ایرانی هم به دلیل در دسترس نبودن نرم افزار و تنها برای مقاصد آموزشی و شخصی نرم افزار ها رو دانلود میکنن و در آینده مجوز رسمی نرم افزار رو برای فعالیت های تجاری تهیه خواهند کرد . )
    برای حل این مشکل روش های مختلفی وجود داره ، روش های مثله :
    1- بستن سایت بر روی کاربران خارجی : در این روش سایت بر روی تمامی کاربران غیر ایرانی منجمله موتور های جستوجو ، سیستم های آنالیز و آمار گیر و ... بسته میشه و در کل روش خوبی نیست .
    2-آپلود فایل بر روی آپلود سنتر های وارز : فیلتر شدن آپلود سنتر ، ضریب اطمینان پایین ، مشکل با کاربران ایرانی و .. از جمله مشکلات این روش است .
    3- استفاده از هاست های وارز : ضریب اطمینان پایین این هاست ها و هدر رفتن پهنای باند برای کاربران خارجی از جمله مشکلات این روش است .
    4- مخفی کردن لینک ها از کاربران مهمان و نیاز به ثبت نام برای مشاهده لینک دانلود : من خودم به شخصه حوصله ثبت نام در یک سایت برای دانلود فایل رو ندارم و سایتی رو انتخاب میکنم که لینک مستقیم بده و بشه سریع فایل رو دانلود کرد ، قطعا کاربران زیادی مثل من هستند .
    5- و... : قطعا روش های دیگه ای هم برای حل این مشکل وجود داره که دارای مشکلات خاص خودش هست .
    =========================================================
    خب.....
    مقدمه ی بالا به چه دلیل گفته شد ؟
    در پست بعدی به این سوال پاسخ داده شده است .
    و راه حل چیست ؟
    ======================================================
    من این مشکل رو توی سایت های مختلفی مطرح کردم و متاسفانه به جواب مورد نظرم نرسیدم ، توی همین انجمن هم تاپیک های مختلفی در این رابطه وجود داره که اکثرا یکی از چهار روش بالا یا استفاده از افزونه یAdvanced Iranian Widget رو پیشنهاد کردند . پس خودم دست به کار شدم و شروع به نوشتن کردم ، در زیر راه حل من برای حل این مشکل آورده شده است :
    =======================================================
    در این روش ip کاربر چک میشه و در صورتی که کاربر ایرانی باشه ، لینک دانلود نسخه ی کامل نرم افزار بهش نمایش داده ، در صورتی که کاربر خارجی باشه ، لینک دانلود نسخه ی دمو ، یا لینکی از شرکت سازنده ی نرم افزار به نمایش در میاد .
    مواد لازم :
    جعبه دانلود :
    http://toolsdl.com/download-box-num-1-by-toolsdl/
    api برای تشخیص کاربران ایرانی :
    http://freegeoip.net/
    شروع کار
    به محیط مدیریت سایت وردپرسی خودتون وارد بشید و شیوه نامه قالب سایتتون رو باز کنید و کدهای زیر را به انتهای آن اضافه کنید. ( از منوی نمایش گزینه ی " ویرایشگر" رو انتخاب کنید و سپس در پانل قالب ها و در بخش "شیوه‌نامه‌ها" بر روی "شیوه‌نامه " کلیک کنید ) :

    .download {
        width: 475px;
        height: auto;
        background-repeat: repeat;
        -webkit-border-radius: 10px;
        -moz-border-radius: 10px;
        border-radius: 10px;
        -moz-transition: all 0.5s ease-out 0s;
        margin-top: 0px;
        margin-bottom: 0px;
        margin-right: auto;
        margin-left: auto;
        font-size: 14px;
        text-decoration: none;
        background-image: url(./images/nmlvnl4seji9qwsfpbbx.png);
        paddin-webkit-border-radius: 10px;
        -moz-border-radius: 10px;
        border-radius: 10px;
        g-right: 10px;
        padding: 15px;
        border: 1px solid #999;
           direction:rtl;
    }
    .download:hover {
        -moz-transition: all 0.5s ease-out 0s;
        border-radius: 3px 3px 3px 3px;
        text-shadow: 1px 1px #FFFFFF;
        -webkit-border-radius: 10px;
        -moz-border-radius: 10px;
        border-radius: 10px;
    }
    .download ul {
        text-decoration: none;
        padding: 0px;
        color: #000;
        font-family: B Yekan, Arial, Helvetica, sans-serif;
        font-size: 14px;
        text-shadow: 1px 1px 0 #fff;
        background-position:-20px center;
        background-repeat: no-repeat;
        list-style-type: none;
        height: 130px;
        margin-top: 0px;
        margin-right: 0px;
        margin-bottom: 10px;
        margin-left: 0px;
    }
    
    .download ul li {
        text-decoration: none;
        margin: 0px;
        list-style-type: none;
        background-image: url(./images/9acyjxtaf16fxhukgno1.png);
        background-repeat: no-repeat;
        background-position: right;
        padding-top: 0px;
        padding-right: 12px;
        padding-bottom: 0px;
        padding-left: 0px;
    }
    
    .download ul li a {
        color: #000;
            text-decoration:none;
        font-family: B Yekan, Arial, Helvetica, sans-serif;
        font-size: 14px;
        text-shadow: 1px 1px #FFFFFF;
    }
    
    .download ul li a:hover {
        text-decoration: none;
        color: #CC3333;
        -moz-transition: all 0.5s ease-out 0s;
    }

    بعد از این که کد های بالا رو به فایل شیوه نامتون اضافه کردید ، کلید " به روز رسانی پرونده " رو بزنید تا تغییرات ذخیره بشه
    شما باید دو تا عکس زیر رو به پوشه ی images قالب خودتون منتقل کنید . (wp-content/themes/them_name/images
    http://up.wikivb.ir/images/9acyjxtaf16fxhukgno1.png
    http://up.wikivb.ir/images/nmlvnl4seji9qwsfpbbx.png

    بر روی single.php ( تک نوشته ) کلیک کنید و کد زیر رو بهش اضافه کنید :

    <div class="download"><div style="text-align: right;">
    
    <?php
    $pageContent = file_get_contents('http://freegeoip.net/json/' . $_SERVER['REMOTE_ADDR']);
    $parsedJson  = json_decode($pageContent);
    ?>
    <?php if($parsedJson->country_name == "Iran, Islamic Republic of"): ?>
    
    <ul><li><a href="<?php echo get_post_meta($post->ID, 'direct_link',true); ?>">دانلـــــــود با لینک مستقیم</a></li>
    <li><a href="<?php echo get_post_meta($post->ID, 'link1',true); ?>">دانلـــــــوداز لینک کمکی شماره یک</a></li>
    <li><a href="<?php echo get_post_meta($post->ID, 'link2',true); ?>">دانلـــــــوداز لینک کمکی شماره دو</a></li>
    <li>حجم و ورژن نرم افزار: <?php echo get_post_meta($post->ID, 'size_version',true); ?></li>
    <li> پســـــــــورد : <?php echo get_post_meta($post->ID, 'pass',true); ?>  </li>
    
    </ul>
    
    <?php endif; ?>
    <?php if($parsedJson->country_name != "Iran, Islamic Republic of"): ?>
    <ul><li><a href="<?php echo get_post_meta($post->ID, 'demo_link',true); ?>">دانلـــــــودنسخه دمو از  سایت سازنده</a></li>
    <li>حجم و ورژن نرم افزار: <?php echo get_post_meta($post->ID, 'demo_size_version',true); ?></li>
    <li><a href="<?php echo get_post_meta($post->ID, 'more_info',true); ?>">اطلاعات بیشتر :</a></li>
    <li><a href="http://www.electronic2.com/c/">chera man noskhe kamel narm afzar ra nemibinam?</a></li>
    </ul>
    <?php endif; ?>
    </div>
    </div>

    شما باید این کد ها در مکانی که میخواید جعبه دانلود نمایش داده بشه بزارید ، من این کد ها رو در زیر خط <div class="postContent"><?php the_content(); ?></div> قرار دادم ، در این حالت لینک دانلود در انتهای پست قرار میگیره . تغییرات رو ذخیره کنید . ( ممکنه این خط در قالب شما اندکی متفاوت باشه ، دنبال خطی بگردید که داخلش the_content() و postContent رو با هم داره )
    از الان شما میتونید با استفاده از زمینه های دلخواه در بخش افزودن نوشته ، لینک های دانلود خودتون رو به نرم افزار بدید ، آموزش تصویری قرار دادن زمینه ی دلخواه در آدرس زیر وجود داره :
    http://picor.ir/640/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%82%D8%B1%D8%A7%D8%B1%D8%AF%D8%A7%D8%AF%D9%86-%D8%AC%D8%B9%D8%A8%D9%87-%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-%D9%88%D8%B1%D8%AF%D9%BE%D8%B1%D8%B3.html
    و شما باید به جای " نام " مقادیر زیر رو وارد کنید :
    direct_link
    لینک مستقیم نرم افزار
    link1
    لینک کمکی شماره یک نرم افزار
    link2
    لینک کمکی شماره دو نرم افزار
    size_version
    حجم و ورژن نرم افزار
    pass:
    پسورد فایل فشرده
    مقدار متغیر های بالا به کاربران ایرانی نمایش داده خواهند شد .
    demo_link
    لینک نسخه دمو
    demo_size_version
    اندازه و ورژن نسخه آزمایشی نرم افزار
    more_info
    اطلاعات بیشتر در مورد نسخه آزمایشی در سایت سازنده نرم افزار
    chera man noskhe kamel narm afzar ra nemibinam
    در صورتی که سیستم در تشخیص ip اشتباه کنه ، کاربر میتونه با خوندن متن بالا متوجه خطای سیستم بشه ، شما میتونید با ویرایش کردن لینک مربوط به این پیغام ، کاربر رو به صفحه ی توضیحات هدایت کنید و در اونجا تصویری که در اون توضیحات مربوط به نحوه ی عمل کرد سیستم وجود داره رو بهش نشون بدید .
    مقدار چهار متغیر بالا به کاربران خارجی نمایش داده خواهد شد .
    ========================================================
    توضیح عمل کرد کد ها :

    <div class="download"><div style="text-align: right;">
    </div>
    </div>

    کد های بالا نحوه ی نمایش جعبه و نام جعبه را تعیین میکند .

    <?php
    $pageContent = file_get_contents('http://freegeoip.net/json/' . $_SERVER['REMOTE_ADDR']);
    $parsedJson  = json_decode($pageContent);
    ?>

    هنگامی که صفحه ی دانلود نرم افزار باز میشود ، با دستورات بالا اطلاعات مروبط به محل سکونت کاربر ، شهر ، کد پستی ، شرکتی که ازش اینترنت گرفته و ... از سایت http://freegeoip.net گرفته میشه و در متغیر parsedJson ذخیره میشه . مزیت استفاده از این api به روز بودن دیتابیس اون هست و تقریبا میشه گفت در اون تمامی ip های ایرانی وجود داره ( بر خلاف افزونه Advanced Iranian Widget که ip ها در اون به صورت دستی وارد شدن و از ip های جدید پشتیبانی نمیکنه )

    <?php if($parsedJson->country_name == "Iran, Islamic Republic of"): ?>
    <?php endif; ?>

    در این بخش ما یک شرط داریم و در صورتی که بخش نام کشور در متغیر parsedJson برابر با Iran, Islamic Republic of باشه ، جعبه ی دانلود مربوط به لینک مستقیم نمایش داده میشه .

    <?php if($parsedJson->country_name != "Iran, Islamic Republic of"): ?>
    <?php endif; ?>

    در بخش دوم شرط اگر کشور بازدید کننده ایران نباشه ، جعبه ی دانلود مربوط به نسخه ی دمو نمایش داده میشه .
    اول تست کنید ،بعد استفاده کنید :
    http://www.electronic2.com/hspice/?
    آدرس بالا یکی از صفحات سایت خودمون هست که لینک های دانلود با استفاده از این روش در اون قرار داده شده ، یک بار با ip ایران و یک بار با استفاده از فندق شکن یا چیز پی ان صفحه رو مشاهده کنید و لینک های دانلود رو ببینید .

  • 1nafar

    آفلاین
    عضو
    تعداد نوشته‌ها: ۶
    تشکر شده: ۲ بار
    # نوشته شده: ۱۰ سال پیش
    ۱۸ مرداد ۱۳۹۲ - ۱۴:۳۵

    1nafar گفت:
    مقدمه ی بالا به چه دلیل گفته شد ؟

    من تخصص چندانی در زمینه ی php و پلاگین نویسی ندارم و خوشحال میشم اساتید ورد پرس و سایر دوستان مشکلات روش ذکر شده رو اعلام کنن .
    در صورتی که کسی میتونه ابن روش رو در قالب یک پلاگین پیاده سازی کنه ، همینجا اعلام کنه ( پولی یا رایگان ) .
    با تشکر 1nafar