سلام
توی ایران سایت های زیادی در زمینه ی دانلود و به اشتراک گذاری نرم افزار فعالیت دارن . در این سایت ها ، کاربران میتونن نرم افزار های پولی رو به صورت رایگان و از لینک مستقیم دانلود کنن .
راه اندازی سایت و وب مستری ، مانند هر کار دیگه ای سختی ها و مشکلات خاص خودش رو داره ، اما یکی از مشکلات عمده ی وب مستران ایرانی بلوکه شدن لینک های دانلود از طرف سرور و خصوصا آپلود سنتر های رایگان هست .
مشکلی که برای من به عنوان مدیر یکی از سایت های فعال در زمینه ی دانلود نرم افزار های تخصصی رشته های برق و الکترونیک بار ها پیش اومده و همیشه مدیریت آپلود سنتر 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;
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-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;
}
بعد از این که کد های بالا رو به فایل شیوه نامتون اضافه کردید ، کلید " به روز رسانی پرونده " رو بزنید تا تغییرات ذخیره بشه و سپس بر روی 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
اطلاعات بیشتر در مورد نسخه آزمایشی در سایت سازنده نرم افزار
مقدار سه متغیر بالا به کاربران خارجی نمایش داده خواهد شد .
========================================================
توضیح عمل کرد کد ها :
<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; ?>
در بخش دوم شرط اگر کشور بازدید کننده ایران نباشه ، جعبه ی دانلود مربوط به نسخه ی دمو نمایش داده میشه .