feed online

feed online

feed online

feed online

Vpi و Vci در تنظیمات مودم چیست؟

Vpi و Vci در تنظیمات مودم چیست

با سلام خدمت کاربرن عزیز گروه کامپیوتر دانشگاه آزاد

با توجه به سوالات متداول از همکارانمان برای توضیح کد های Vpi و Vci بر آن شدیم در یک پست به این سوال کاربران عزیز پاسخ دهیم با ما همراه باشید. . .

VCI و VPI دو مقدار مهم در تنظیمات مودم هستند که مشخص کننده مسیر و کانال انتقال داده‌ها به ISP است که برای هر ISP داخلی، متفاوت از دیگری است. این دو مقدار در حالت انتقال ATM استفاده می‌شوند.

Vpi مخفف : Virtual Path Identifier   - مشخص کننده مسیر مجازی

Vci مخفف :Virtual Channel Identifier  -مشخص کننده کانال مجازی

یکی از مهمترین تنظیماتی که برای اتصال به اینترنت در مودم (Modem) خود باید آن را انجام دهید، تنظیمات مربوط به دو مقدار VCI و VPI است. این مقادیر توسط ISP مشخص می‌شوند و نشان دهنده کانال انتقال داده اند.

توجه: VPI مشخص کننده شماره مسیر VP و VCI مشخص کننده شماره مسیر VC است. بنابراین برای درک بهتر، ابتدا کانال VC و مسیر VP را شرح می‌دهیم و در بخش دوم به مشخص کننده آن‌ها (یعنی VCI و VPI) که در تنظیمات مودم استفاده می‌شوند، خواهیم پرداخت.

 

VP و VC چیست؟

VP مخفف عبارت "Virtual Path" به معنای "مسیر مجازی" است. در تکنولوژی انتقال داده ATM (یک حالت انتقال داده - در بخش‌های بعدی توضیح داده خواهد شد)، مسیر اصلی و فیزیکی انتقال داده‌ها به چندین بخش مجزا تقسیم می‌شود. چون این تقسیم بندی واقعاً به صورت فیزیکی نیست و در لایه‌های بالاتر استفاده می‌شود، به آن "مسیر مجازی" گفته می‌شود. این تقسیم بندی مسیر، برای جلوگیری از تداخل داده‌های رد و بدل شده در یک شبکه یا اینترنت است.

برای درک بهتر این تقیسم بندی، ارتباط بین دو شهر را فرض کنید که با چندین بزرگ راه (همه شرایط آن‌ها شامل طول، پهنا و ... به جز نامشان را یکی در نظر بگیرید) به هم وصل شده باشد و در انتهای هر یک از این بزرگ راه‌ها (مسیر مجازی) یک نفر ایستاده باشد. درصورتی که فرد Y (پاکت داده) بخواهد از مبداء به مقصد برود، می‌تواند از همه این مسیرها راهش را بپیماید. درست است که فرد به مقصد رسیده اما درصورتی که بخواهد نفر X (مسیر دادهها به ISP مشخص) را که در انتهای یکی از این مسیرها ایستاده را ببیند، باید درست از همان مسیر حرکتش را انجام دهد که از قبل تعیین شده است (توسط ISP).

خود مسیر مجازی (VP) نیز به چندین کانال تقسیم می‌شود که به آن VC می‌گویند. VC مخفف عبارت "Virtual Channel" به معنای "کانال مجازی" است. کانال‌های مجازی موجود در یک مسیر مجازی، مقصد نهایی را مشخص می‌کنند. با استفاده از مسیر مجازی و کانال مجازی، پاکت‌های داده دقیقاً به جایی خواهد رسید که انتظار داشتیم. به همین دلیل، ISPها معمولاً دارای VC یا VP جداگانه از یکدیگر هستند مگر آن که همه آن‌ها از یک نقطه مشترک (مثلاً مرکز اصلی مخابرات) داده‌های خود را رد و بدل کنند چون در غیر این صورت، داده‌ها ممکن است به اشتباه ارسال شده و به مقصد برسند.

برای درک بهتر VC، همان مثال قبلی را فرض کنید با این تفاوت که در بزرگ را (VP) توسط خطوطی به چندین لاین (VC) تقسیم شده است. حال فرض کنید در یک مسیر مشخص، در انتهای هر باند، یک نفر (مقصد اصلی داده‌ها به یک ISP مشخص) ایستاده باشد. با این شرط که نتوانیم باندمان را در طول مسیر عوض کنیم، باید درست از همان مسیری حرکتمان را شروع کنیم که از قبل مشخص شده باشد (توسط ISP) تا به فرد مورد نظر برسیم.

VCI و VPI شرکت‌های مهم داخلی:

شرکت‌های ارائه دهنده خدمات اینترنتی (ISP) در ایران، VCI و VPI های زیر را برای دسترسی تعریف کرده اند.

توجه کنید که این لیست از وبسایت Hadiran.ir برداشته شده و ممکن است دارای اشکالاتی باشد. درصورت مشاهده هر گونه اشکال در این لیست، لطفاً از طریق قسمت تماس با ما یا بخش نظرات این مطلب اقدام کنید. همچنین می‌توانید شماره VPI و VCI را از ISP خود پرسیده و همراه با نام ISP و استان خود، آن را در بخش نظرات ارسال کنید.

نام شرکت ISP

مقدار VPI

مقدار VCI

استان (ها)

مخابرات  ۰  ۳۵ در اکثر شهرها
آسیاتک ۰ ۳۵
پارس آنلاین ۰ ۳۵ تهران
شاتل ۰ ۳۵
صبانت ۰ ۳۵
های وب ۰ ۳۵
پارس آنلاین ۰ ۵۹ در اکثر شهرها
مخابرات  ۰  ۳۳  آذربایجان شرقی
 همارا سیستم  ۰  ۳۳  آذربایجان شرقی
 عصر تله کام  ۸  ۳۵
 پیشگامان  ۸  ۸۱

ادامه مطـــلب در منبع...

برنامه محدود سازی اینترنت موبایل اندرویدی

برنامه محدودسازی اینترنت موبایل اندرویدی

با سلام خدمت کاربران عزیز گروه کامپیوتر دانشگاه آزاد:

امروز با آموزش و دانلود برنامه AFWall در خدمت شما هستیم تا شما را با این برنامه اندرویدی و امکاناتش آشنا کنیم :

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

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

روش کار بصورت زیر هست : 

برنامه محدودسازی اینترنت موبایل اندرویدی

برنامه نیازمند روت هستش . بعد از باز کردن برنامه و دادن دسترسی روت با همچین شکلی رو به رو میشید که یه لیستی از هر چی رو گوشی نصبه بهتون نشون میده .. جلوی آیکون هر نرم افزار سه نوع تیک وجود داره . نوع اول که روش نوشته LAN رو کاری نداریم . نوع دوم مربوط به اینترنت WIFI هستش و نوع سوم هم مربوط به اینترنت سیم کارت ..

خب همونجوری که تو تصویر بالا مشاهده میکنین من برای اینترنت WIFI تیک تمام برنامه ها رو روشن کردم که شما هم باید اینکارو کنین تا وقتی به اینترنت ADSL وصلین عملکرد گوشی دچار اشکال نشه و استفاده عادی بشه ازش کرد … دقت کنین وقتی این فایروال رو فعال کنین اینترنت WIFI رو هم تحت تاثیر میذاره پس حواستون باشه حتما این تیک رو بزنید …

اما توی قسمت اینترنت موبایل فقطو فقط برنامه هایی که نیاز دارین رو تیک بزنید . هر نرم افزاری تیک بخوره یعنی اجازه استفاده از اینترنت رو داره … برای مثال من فقط نرم افزار های ارتباطیمو اجازه دادم که از اینترنت استفاده کنن .. دو تا مرورگر هم برای مواقع ضروری گذاشتم باشه که اگه یه وقت لازمم شد نیاز نباشه بیام داخل برنامه و تنظیمات دوباره انجام بدم … شما بسته به نیاز خودتون هر نرم افزاری که میخواین رو تیک بزنید (اگه از اینترنت همراه واقعا در حد اینترنت همراه استفاده میکنین یعنی فقط واسه وقتی که خونه نیستین و بیرونن و اونم فقط برای اینکه در دسترس باشین نه اینکه سایت گردی و .. کنین پس فقط تیک همین نرم افزارهای ارتباطی رو روشن بذارین اینجوری راحت با ۲۰۰ مگ یه ماه رو جواب میده البته به ظرطی که کلیپ و .. نفرستید توی وایبر و امثال وایبر )

اما کار تموم نشده هنوز مرحله اصلی مونده !! شما بعد اینکه تیک برنامه های مورد نظرتون رو زدین نیاز به دو کار دیگه دارین . قدم اول ذخیره کردن تغییراتیه که در تیک ها دادین و قدم دوم روشن کردن فایروال

به عکس زیر نگاه کنین

برنامه محدودسازی اینترنت موبایل اندرویدی

بعد از زدن تیک ها روی منو یا همون سه نقطه کلیک کنید و بعد از دیدن این منو اول SAVE و بعد ENABLE رو بزنید .. تمام :)

حالا برای مثال وقتی به اینترنت سیم کارت وصلین نرم افزار بازار ( که تیک نخورده) رو باز کنید میبینید که ارور میده . اما وایبر رو باز کنین راحت پی ام میره . با این روش مصرف دیتا فقط و فقط به نرم افزارهای مورد نظرتون محدود میشه . عالیه نه ؟ :)

با نظراتتون منه نویسنده و گروه رو حمایت کنین مرسی

دانلود اخرین ورژن اندرویدی آ اف وال
حجم: 3.59 مگابایت

ادامه مطـــلب در منبع...

معرفی سیستم عامل اندروید و خصوصیات آن

برنامه نویسی اندرویدAndroid به زبان ساده سیستم عاملی است برای دستگاه های موبایل و گوشی های هوشمند که توسط بیش از 30 کمپانی معروف پشتیبانی می شود. آندروید اوپن سورس است و توسعه دهندگان می توانند با استفاده از Android SDK برنامه های مختلفی برای این سیستم عامل بنویسند. در واقع آندروید بستری را فراهم می کند تا برنامه نویسان بتوانند هرچه سریعتر و بهتر برنامه هایی بسازند که از تمام ویژگی های یک گوشی هوشمند استفاده کند. آندروید به معنای واقعی “ باز” (Open) است، یعنی برنامه نویس می تواند از تمام قدرت یک تلفن همراه استفاده کند. آندروید امکان استفاده از توابع داخلی گوشی موبایل همچون شماره گیری، فرستادن SMS یا استفاده از دوربین گوشی را به برنامه نویسان می دهد تا بتوانند اپلیکیشن های قدرتمند و کاربردی برای کاربران بسازند.

 

تمام برنامه ها برای آندروید یکی اند. آندروید فرقی میان یک برنامه third-party و توابع هسته سیستم عامل در اجرا نمی گذارد و هر دو می توانند دسترسی مساوی به قابلیت های گوشی داشته باشند. گوشی هایی که سیستم عامل آندروید را خواهند داشت به کاربرشان اجازه می دهند تا از تمام قابلیت های یک گوشی هوشمند بهره ببرند. کاربران این گوشی ها به معنای واقعی می توانند دستگاه خود را بر اساس سلیقه ی خود تغییر دهند و محیط سیستم عامل گوشی خود را سفارشی و شخصی سازی کنند. حتی کاربران می توانند برای گوشی تعیین کنند که عکس هایشان با چه برنامه ای باز شود.

 

ویژگی ها و خصوصیات آندروید

1. آندروید تمامی تکنولوژی های اتصال (Connectivity) شامل GSM/EDGE, CDMA, EV-DO, UMTS, Bluetooth و Wi-Fi را پشتیبانی می کند.

2. آندروید از فرمت های مختلف فایل های مالتی مدیا مثل MPEG-4, H.264, MP3, AAC, AMR, JPEG, PNG, GIF پشتیبانی می کند.

3. SMS , MMS و XMPP فرم هایی هستند که آندروید برای ارسال پیغام های متنی یا همان SMS از آن ها پشتیبانی می کند.

4. مرورگر موجود در آندروید بر اساس فریم ورک اوپن سورس WebKit توسعه یافته است.

5. SQLite نرم افزاریست که برای ذخیره داده ها و مدیریت بانک های اطلاعاتی سبک در آندروید در نظر گرفته شده است.

6. ماشین مجازی جاوا (Java Virtual Machine) در آندروید به صورت پیش فرض تعبیه شده است. تمام برنامه های آندروید باید به زبان جاوا نوشته شوند. البته این نسخه از JVM برای دستگاه های موبایل بهینه شده است.

7. ابزارهای مختلف آندروید برای توسعه دهندگان به راحتی در دسترس است و توسط شرکت گوگل پشتیبانی می شوند. این ابزارها شامل کتابخانه ها، خطایاب، شبیه ساز گوشی و یکم پلاگین برای اکلیپس است.

8. آندروید از سخت افزارهای مختلف همچون GPS و دوربین های متنوع پشتیبانی می کند.

9. تصاویر و فایل های گرافیکی بوسیله OpenGL پردازش می شوند که کیفیت بالاتری خواهند داشت.

توسعه برنامه های کاربردی در آندروید سریع ، راحت و لذت بخش است

گوگل دسترسی آسان به ابزارهای سودمند و کتابخانه های بسیاری را برای توسعه و تولید برنامه های کاربردی مبتنی بر آندروید فراهم کرده است، که برنامه نویسان می توانند با استفاده از آن ها هرچه سریع تر و راحت تر برای آندروید برنامه تولید کنند. این ابزارها شامل خطایاب، شبیه ساز گوشی، کتابخانه ها، اسناد، کدهای نمونه و یک پلاگین برای اکلیپس است. برنامه نویسی برای آندروید به زبان جاوا انجام می گیرد. توابع خود آندروید نیز با استفاده از جاوا پیاده سازی شده اند. آندروید فقط قادر است کدهای مدیریت شده (Managed Codes) را اجرا کنید و قادر به اجرای کدهای Native نخواهد بود.

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

این سیستم عامل بر اساس هسته سیستم عامل لینوکس توسعه یافته است. در واقع مدیریت و بهینه سازی حافظه، ارتباط با سخت افزار و سرویس های سیستم، امنیت، مدیریت پردازش ها و مدیریت منابع دستگاه موبایل را هسته لینوکس انجام می دهد و آندروید فقط لایه ایست که ارتباط میان کاربر و سیستم عامل را برقرار می کند. این لایه نرم افزاری بوسیله جاوا پیاده سازی شده است و به همین علت قادر به اجرای کدهای Native نخواهد بود. آندروید همانند لینوکس اوپن سورس خواهد بود و توسعه دهندگان بیشماری بر روی آن کار می کنند.



ادامه مطـــلب در منبع...

کامپیوتر و پزشکی

کامپیوتر و پزشکی

همانطور که دیدید یک زمانی اگه یادتون باشه هزاران بار تبلیغات می شد بچه هاتون و بیارید مرکز و تست بینایی بدن با این روش لازم نیست کلی الاف بشین تو مطب دنبال ویزیت باشین و پول کلان به جیب بعضیا که پزشکی رو با تجارت اشتباه گرفتن بریزید .

کافیه به سایتی که اعلام کردیم برید و به آسونی تست بدین http://www.didsanj.com/

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

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

ان شاء الله مهندسان علم هوش مصنوعی کشور عزیمان ایران اختراعاتی به ثبت برسانند که مردم صد البته شهر ها که ترافیک و .... واقعا آسیب می زنه بهشون دیگه ترافیک نکشین 

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

ادامه مطـــلب در منبع...

ایجاد لینک دانلود مدت دار

ایجاد لینک دانلود مدت دار

ایجاد دیتابیس و جداول لازم


طبق معمول برنامه های مبتنی بر دیتابیس MySQL، اولین گام ما ایجاد و تعریف ساختار پایگاه داده است که در اینجا با توجه به نیازمان ابتدا از طریق برنامه phpMyAdmin یا با استفاده از کدهای PHP، دیتابیس download را می سازیم (در این آموزش فرض بر این است که از طریق برنامه phpMyAdmin پایگاه داده را ساخته اید)، سپس کدهای زیر را (در صورت نیاز پس از اعمال تنظیمات اتصال) در دایرکتوری فرضی time-limit-download و با نام table_create.php در ریشه هاست یا در سرور مجازی اجرا می کنیم (باید این دایرکتوری را در فولدر www یا public_html و فایل را داخل آن داشته باشید).

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>وبگو | ساخت جدول دانلود مدت دار فایل</title>
<!-- http://webgoo.ir -->
<style type="text/css">
body{
    font-family:Tahoma, Geneva, sans-serif;
    font-size:12px;
    direction:rtl;
}
.ltr{
    direction:ltr;
}
</style>
</head>
<body>
<?php
@$con = mysqli_connect('localhost', 'root', '', 'download');
//خطای اتصال
if(mysqli_connect_errno()){
    echo 'اتصال با دیتابیس برقرار نشد:
    <br>
    <div class="ltr">
    '.mysqli_connect_errno().' - '.mysqli_connect_error().'
    </div>';
}
//اتصال برقرار است
else{
    $query = mysqli_query($con, "CREATE TABLE file_storage(
    id INT NOT NULL AUTO_INCREMENT,
    PRIMARY KEY(id),
    client_ip VARCHAR(255),    
    original_name VARCHAR(255),
    temp_name VARCHAR(255),
    date_time BIGINT(20)) ENGINE=MyISAM");

    if(mysqli_errno($con)){
        echo 'بروز خطا در ایجاد جدول:
        <br>
        <div class="ltr">'.mysqli_errno($con).' - '.mysqli_error($con).'</div>';        
    }
    else{
        $link = 'http://'.$_SERVER["SERVER_NAME"].'/time-limit-download/test.zip';
        echo 'جدول با موفقیت ساخته شد.
        <br>
        <div class="ltr">
        <a href="'.$link.'">'.$link.'</a>
        </div>';
    }
}

$close = mysqli_close($con);
?>
</body>
</html>

لینک اجرای فایل باید مطابق با نمونه زیر باشد.

http://localhost/time-limit-download/table_create.php

نکته: در این آموزش از اکستنشن mysqli استفاده شده که می توانید مطابق سلیقه از PDO یا حتی اکستنش اولیه mysql استفاده کنید (استفاده از این اکستنشن به جزء در موارد آموزشی و پروژه های قدیمی، توصیه نمی شود).
توضیح:
با اجرای فایل بالا جدولی با نام فرضی file_storage در دیتابیس download ایجاد می شود که این جدول دارای ستون هایی است که در قسمت CREATE TABLE پرس و جوی بالا ملاحظه می کنید، در زیر به صورت مختصر و جهت آشنایی نقش ستون ها را بررسی می کنیم.
ستون id: این ستون به عنوان یک شماره یکتا معمولا در اکثر برنامه های مبتنی بر دیتابیس استفاده می شود (جهت تمایز و مدیریت بهتر داده های مختلف)، نوع این ستون INT است که در این حالت تا مرز 2147483647 ردیف قابل ایجاد است.
ستون client_ip: این ستون برای نگهداری IP کاربر است که در هنگام تطبیق اطلاعات لینک می تواند مورد استفاده قرار گیرد (استفاده از IP صرفا جهت نمونه است و در صورت نیاز می تواند استفاده نشود).
ستون original_name: این ستون نام اصلی فایل را به همراه پسوند آن نگهداری می کند.
ستون temp_name: این ستون برای نگهداری نام hash شده فایل است (hash به عبارت رمزی شده گفته می شود که در مورد استفاده ما به آن token نیز گفته می شود).
ستون date_time: این ستون جهت نگهداری تاریخ و زمان با نمونه فرمت 20140101121110 (ثانیه دقیقه ساعت روز ماه سال) است، از این عدد برای محاسبه مدت زمان انقضای لینک دانلود استفاده می کنیم.

ایجاد لینک دانلود


پس از ایجاد دیتابیس و جدول، اکنون باید کدی داشته باشیم که آدرس های موقت دانلود مدت دار فایل را برایمان ایجاد کند، در واقع در این مرحله به طور مثال کاربر لینک فرضی زیر را از سرور درخواست می کند و در پاسخ، لینک مدت دار به او نشان داده می شود.
نمونه لینک درخواستی کاربر:

http://localhost/time-limit-download/test.zip

نمونه آدرس ایجاد شده برای دانلود مدت دار:

http://localhost/time-limit-download/gCvHGkaDADuTbmq3dQsdSXyZ/test.zip

لذا کدهای زیر را در فایلی با نام download_link.php در دایرکتوری time-limit-download درج کنید.

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>وبگو | ایجاد لینک دانلود مدت دار</title>
<!-- http://webgoo.ir -->
<style type="text/css">
body{
    font-family:Tahoma, Geneva, sans-serif;
    font-size:12px;
    direction:rtl;
}
.ltr{
    direction:ltr;
}
</style>
</head>
<body>
<?php
//تابعی برای ایجاد عبارت رندوم
function randomStr($length){
    $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $random_string = '';
    for($i = 0; $i < $length; $i++){
        $random_string .= $characters[rand(0, strlen($characters) - 1)];
    }
    return $random_string;
}

@$file = $_GET['file'];
if(!isset($file)){
    echo 'مشکلی در دریافت اطلاعات فایل وجود دارد!';
}
else{
    @$con = mysqli_connect('localhost', 'root', '', 'download');
    //خطای اتصال
    if(mysqli_connect_errno()){
        echo 'اتصال با دیتابیس برقرار نشد:
        <br>
        <div class="ltr">
        '.mysqli_connect_errno().' - '.mysqli_connect_error().'
        </div>';
    }
    //اتصال برقرار است
    else{
        $temp = randomStr(24);
        $date = date('YmdHis');
        //مدت زمان اعتبار لینک به ثانیه
        $time = date('YmdHis', time() - 60);
        //ایمن سازی
        $file = mysqli_real_escape_string($con, $file);
        $ip = mysqli_real_escape_string($con, $_SERVER["SERVER_ADDR"]);
        
        //حذف ردیف هایی که تاریخ اعتبار آنها گذشته است
        $query = mysqli_query($con, "DELETE FROM file_storage WHERE date_time < '$time'");
                
        //بررسی ip
        $query = mysqli_query($con, "SELECT temp_name FROM file_storage WHERE client_ip = '$ip' AND original_name = '$file' LIMIT 1");
        $count = mysqli_num_rows($query);
        //استفاده از لینک موجود
        if($count > 0){
            while($row = mysqli_fetch_array($query)){
                $temp = $row['temp_name'];
                //آپدیت زمان
                $update = mysqli_query($con, "UPDATE file_storage SET date_time = '$date' WHERE client_ip = '$ip' AND original_name = '$file' LIMIT 1");
            }
        }
        //ایجاد لینک جدید
        else{
            $query = mysqli_query($con, "INSERT INTO file_storage(
            client_ip, original_name, temp_name, date_time)
            VALUES('".$ip."', '".$file."', '".$temp."', '".$date."')");
        }
        
        if(mysqli_errno($con)){
            echo 'بروز خطا در ذخیره و ایجاد لینک دانلود:
            <br><div class="ltr">'.mysqli_errno($con).' - '.mysqli_error($con).'</div>';
        }
        else{
            $link = 'http://'.$_SERVER["SERVER_NAME"].'/time-limit-download/'.$temp.'/'.$file.'';
            echo 'لینک دانلود با موفقیت ساخته شد:
            <br>
            <div class="ltr">
            <a href="'.$link.'">'.$link.'</a>
            </div>';
        }
    }
    
    $close = mysqli_close($con);    
}
?>
</body>
</html>

توضیح:
منطق به کار رفته در این قسمت خیلی پیچیده نیست، ابتدا فایل درخواستی کاربر از سرور از طریق متد GET دریافت شده و پیش از ایجاد لینک جدید، وجود IP کاربر و نام فایل مشابه در دیتابیس بررسی می شود، اگر فایل مشابهی با این IP در دیتابیس باشد، ضمن به روز رسانی مدت زمان اعتبار لینک، از اطلاعات موجود برای نمایش لینک دانلود مدت دار استفاده می شود، در غیر این صورت (یعنی اگر اطلاعاتی مطابق با IP و نام اصلی فایل در دیتابیس موجود نباشد)، لینکی با اطلاعات جدید ساخته و در دیتابیس نیز INSERT می شود.
نکته 1: ملاحظه می کنید که پیش از هر گونه اقدامی، ابتدا دستور حذف ردیف های تاریخ گذشته را اجرا کرده ایم.
نکته 2: مدت اعتبار لینک با تغییر مقادیر عددی در متغیر time قابل تغییر است، در این مثال ما از عدد 60 ثانیه استفاده کرده ایم که می توان مطابق نیاز آن را افزایش یا احیانا کاهش داد.
نکته 3: بررسی وجود IP و لینک موجود به این دلیل ممکن است ضروری باشد که معمولا علاوه بر مرورگر، برنامه های مدیریت دانلود مانند IDM نیز (هم زمان با مرورگر و به صورت مخفیانه) درخواستی به سرور ارسال می کنند که در این صورت برای یک فایل، دو ردیف و دو لینک دانلود مجزا در دیتابیس خواهیم داشت که قاعدتا یک مورد آن زائد است.
نکته 4: همان طور که پیش تر گفته شد، این برنامه صرفا یک الگو است و می توان بر اساس نیاز خود بخش هایی از آن را حذف یا مواردی اضافه نمود (منتها باید نسبت به انجام این مورد مسلط باشید!).

ایجاد فولدر file و کد اجرای دانلود


پس از ایجاد و ذخیره لینک دانلود مدت دار، قاعدتا این لینک باید توسط کاربر نهایی جهت دانلود فایل استفاده شود، لذا بدین منظور در دایرکتوری time-limit-download فولدر دیگری با نام file ساخته و درون آن فایلی با نام download_file.php می سازیم، کدهای این فایل وظیفه بررسی لینک درخواستی و در صورت تائید، ارسال فایل به مرورگر را به عهده خواهند داشت.

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>وبگو | دانلود فایل مدت دار</title>
<!-- http://webgoo.ir -->
<style type="text/css">
body{
    font-family:Tahoma, Geneva, sans-serif;
    font-size:12px;
    direction:rtl;
}
.ltr{
    direction:ltr;
}
</style>
</head>
<body>
<?php
@$token = $_GET['token'];
@$file = $_GET['file'];
if(!isset($file) || !isset($token)){
    echo 'مشکلی در دریافت اطلاعات فایل وجود دارد!';
}
else{
    @$con = mysqli_connect('localhost', 'root', '', 'download');
    //خطای اتصال
    if(mysqli_connect_errno()){
        echo 'اتصال با دیتابیس برقرار نشد:
        <br>
        <div class="ltr">
        '.mysqli_connect_errno().' - '.mysqli_connect_error().'
        </div>';
    }
    //اتصال برقرار است
    else{
        $date = date('YmdHis');
        //مدت زمان اعتبار لینک به ثانیه
        $time = date('YmdHis', time() - 60);
        //ایمن سازی
        $token = mysqli_real_escape_string($con, $token);        
        $file = mysqli_real_escape_string($con, $file);
        
        //حذف ردیف هایی که تاریخ اعتبار آنها گذشته است
        $query = mysqli_query($con, "DELETE FROM file_storage WHERE date_time < '$time'");
        
        //بررسی اطلاعات فایل درخواستی کاربر با سرور
        $query = mysqli_query($con, "SELECT temp_name FROM file_storage WHERE original_name = '$file' AND temp_name = '$token' LIMIT 1");
        $count = mysqli_num_rows($query);
        //اطلاعات فایل معتبر است
        if($count > 0){
            //تابع برای بدست آوردن پسوند فایل
            function getExtension($file){
                preg_match('/\.[^\.]+$/i', $file, $ext);
                return $ext[0];
            }
            
            //نوع فایل
            $file_type = NULL;
            switch(getExtension($file_name)){
                case 'zip':
                $file_type = 'application/zip';
                break;
                case 'pdf':
                $file_type = 'application/pdf';
                break;
                case 'jpg':
                $file_type = 'image/jpeg';
                break;
            }
            
            //ارسال فایل به مرورگر برای دانلود
            $file_name = $file;
            header('Content-Description: File Transfer');
            //header('Content-Type: application/octet-stream');
            header('Content-Type: '.$file_type);
            header('Content-Disposition: attachment; filename='.$file_name);
            header('Content-Transfer-Encoding: binary');
            header('Expires: 0');
            header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
            header('Pragma: public');
            header('Content-Length: '.filesize("$file_name"));
            ob_clean();
            flush();
            readfile("$file_name");
        }
        //لینک فایل معتبر نیست یا فایل حذف شده
        else{
            echo 'فایل مورد نظر یافت نشد!';
        }
    }
    
    $close = mysqli_close($con);
}
?>
</body>
</html>

توضیح:
عملکرد این کد به این صورت است که پارامتر hash یا همان token ارسالی از کاربر و همچنین نام حقیقی فایل را که از طریق لینک مدت دار دانلود دریافت شده با دیتابیس تطبیق داده و در صورتی که اطلاعات معتبر باشد، فایل موجود در دایرکتوری file را به مرورگر (یا هر واسط کاربری دیگر مانند برنامه های مدیریت دانلود) ارسال می کند.

دستور htaccess برای ایجاد لینک های استاتیک


در آخرین گام از ایجاد لینک دانلود مدت دار نیاز به دستورات htaccess زیر در ریشه سایت است تا بتوانیم آدرس های استاتیک (آدرس هایی که در آنها علامت ? نباشد) را ایجاد و استفاده کنیم، لذا بدین منظور اگر فایل htaccess. در ریشه سایت وجود دارد، کافی است دستورات جدید را در انتها اضافه کنید، اما اگر این فایل وجود ندارد باید آن را بسازید و کدها را در آن درج نمائید.

RewriteEngine on
RewriteRule time-limit-download/([^/]+)/([^/]+)(\.zip|\.pdf|\.jpg)$ /time-limit-download/file/download_file.php?token=$1&file=$2$3 [NC,L]
RewriteRule time-limit-download/([^/]+)(\.zip|\.pdf|\.jpg)$ /time-limit-download/download_link.php?file=$1$2 [NC,L]

دو دستور بالا به ترتیب برای دریافت لینک مدت دار (token و نام اصلی فایل) و لینک عادی فایل (بدون token) کاربرد دارد.
نکته: اگر از فعال بودن Rewrite Engine در سرور مجازی خود مطمئن نیستید، لطفا در این خصوص در وب جستجو کنید.

ادامه مطـــلب در منبع...

کار با توابع تاریخ و زمان در Php

کار با توابع تاریخ و زمان در Php

با سلام خدمت کاربران عزیز گروه کامپیوتر دانشگاه آزاد در خدمتتون هستیم با اموزش کار با زمان و تاریخ در پی اچ پی

امیدوارم این سری آموزش مورد توجه شما دوستان عزیز قرار بگیره

تاریخ و زمان چیزهایی هستند که ما به طور زیادی با آن ها هر روز سر و کار داریم و در برنامه نویسی هم به درد ما می خورند. php  برای ما توابعی را آماده کرده که می توانیم با استفاده از آن ها کارهای زیادی را انجام دهیم. اصلی ترین تابع برای تاریخ و زمان، تابع date() می باشد که در ادامه به توضیح آن می پردازیم.

( )Date

این تابع برای ساختن فرمت های مختلف تاریخ ویا زمان است. این تابع دو پارامتر دارد که یکی برای فرمت خروجی تاریخ (پارامتر format) و دیگری timestamp یا مهر زمانی می باشد. واردکردن پارامتر timestamp دلخواه می باشد و این پارامتر پایه و منباء اطلاعاتی که پارامتر format دریافت می کند را تنظیم می کند (اگر ابهامی احساس می کنید در ادامه رفع خواهد شد). شکل کلی این تابع به صورت زیر است:

date(format, timestamp);

ارامتر format باید به شکل رشته ای وارد شود. این رشته باید دارای فرمت خاصی باشد که تنها مقادیر خاصی می تواند در آن قرار گیرد. در زیرجدولی را مشاهده می کنید که شامل این کاراکتر ها می باشد:

کاراکتر توضیحات
d روز از ماه را به شکل عدد دورقمی نشان می دهد (از 01 تا 31).
D روز هفته را به صورت سه حرفی نشان می دهد.
j روز را به صورت عدد 1 یا دوحرفی بدون صفر پیش از آن نشان می دهد (از 1 تا 31).
l روز هفته را به صورت کامل نشان می دهد.
N روز هفته به شکل عددی نشان می دهد (از 1 تا 7).
S پسوند تاریخ را به شکل انگلیسی نشان می دهد (st، nd، rd یا th).
w روز هفته را به شکل عددی نشان می دهد (از 0 تا 6).
z روز از سال را نشان می دهد (از 0 تا 365).
W شماره هفته از سال را نشان می دهد.
F نام کامل ماه را نشان می دهد.
m شماره ماه به شکل عددی را همراه با صفر پیش از آن نشان می دهد (از 01 تا 12).
M نام ماه را به صورت سه حرفی نشان می دهد.
n شماره ماه بدون صفر پیش از آن را به شکل عددی نشان می دهد (از 1 تا 12).
t تعداد روزهای ماه را نشان می دهد.
L سال کبیسه را نشان می دهد (اگر سال کبیسه باشد 1 درغیر این صورت 0).
o شماره سال را به شکل عددی نشان می دهد.
Y شماره سال را به صورت 4 حرفی نشان می دهد.
y شماره سال را به صورت 2 حرفی نشان می دهد.
a am(قبل از ظهر) یا pm(بعد از ظهر) را با حروف کوچک نشان می دهد.
A Am یا PM را با حروف بزرگ نشان می دهد.
g ساعت را به صورت 12 ساعته و بدون صفر پیش از آن نشان می دهد (از 1 تا 12).
G ساعت را به صورت 24 ساعته و بدون صفر پیشین نشان می دهد (از 0 تا 23).
h ساعت را به صورت 12 ساعته و همراه با صفر پیشین نشان می دهد (از 01 تا 12).
H ساعت را به صورت 24 ساعته و همراه با صفر پیشین نشان می دهد (از 00 تا 23).
i دقیقه را همراه با صفر پیشین نشان می دهد (از 00 تا 59).
s ثانیه را همراه صفر پیشین نشان می دهد (از 00 تا 59).
u میکروثانبه را نشان می دهد.
e منطقه زمانی را نشان می دهد (مانند gmt یا utc).
O تفاوت زمانی با زمان گرینویچ را به ساعت نشان می دهد.
P تفاوت زمانی با گرینویچ را به ساعت و دقیقه نشان می دهد.

 

همین که می بینید حروف کوچک و بزرگ مقادیر مختلفی را دارا هستند و باید در این مورد دقت لازم را به جا آورید.

این کاراکترها می توانند با یکدیگر ترکیب شوند و یک فرمت زمان یا تاریخ را بسازند. همچنین از کاراکترهای دیگری مانند ، – . و… برای جداسازی عددهای مختلف استفاده کرد.

مثال:

در این مثال تاریخ و زمان را بوسیله تابع date چاپ می کنیم:

ادامه مطـــلب در منبع...

برنامه های دانلود شده بازار در کجا ذخیره می شوند؟

برنامه های دانلود شده از بازار در کجا ذخیره می شوند

با سلام خدمت کاربران عزیز گروه کامپیوتر دانشگاه آزاد امروز با آموزش کاربردی در خدمت شما هستیم که دیگه مشکل ارسال برنامه های دانلود شده و خریداری شده از بازار رو نداشته باشین

این مطلب اختصاصی است لطفا با ذکر منبع به اشتراک بگذارید :


در نسخه‌های قدیمی بازار برنامه‌های دانلود شده در مسیر زیر قرار میگرفتند :
sdcard > icm > bazaar > downloads

ولی در ورژن جدید اینگونه نیست و بعد از نصب برنامه‌ها، فایل اصلی آنها حذف میشوند که میتوانید به این صورت عمل کنید : بعد از دانلود فایل بجای نصبه آن دکمه Home را بزنید و از نصب خارج شوید، به قسمت Android در حافظه گوشی یا مموی کارت رفته و سپس وارد پوشه‌ی data و بعد از آن به دنبال پوشه ای به نام com.farsitel.bazaar بگردید، داخل شوید و نرم‌افزار را به جای دیگری انتقال دهید.
Android > Data > com.farsitel.bazaar > files

ادامه مطـــلب در منبع...

آموزش گذاشتن پست پازلی در اینستاگرام

با سلام خدمت دوستان و کاربران عزیز با مطلبی جدید در خدمت شما دوست داران گروه کامپیوتر دانشگاه آزاد هستیم 

امروز با آموزش " پست پازلی " یا به عبارتی " پست ادامه دار" در اینستگرام در خدمتتون هستیم

در این آموزش می توان عکسی مانند زیر در اینستاگرام ترتیب داد .  . .

آموزش گذاشتن پست پازلی در اینستاگرام

بصورت خلاصه وارد این بشیم که چطور می تونیم پست پازلی خود را در اینستا درست کنیم نکته این است که هر عکس اینستا در اندازه ی سایز زیر باید باشد :

width=459   و  Height=457

پس برای اینکه ما یک عکس 3 تایی داشته باشیم مانند عکس بالا باید در فتوشاپ ابعادی به ابعاد 

1377=3*width=459   و  Height=457 

پیکسل پروژه ای را ایجاد کنیم .

ما برای راحتی کار فایل فتوشاپ را در آخر مطلب برای دانلود گذاشته ایم.

سپس کافیست یک عکس را داخل پروژه ایمپورت کنید و ابعاد آن را Fit اندازه ی بالا قرار دهید 

سپس فایل خود را با پسوند Jpg یا Png ذخیره کنید .

سپس عکس را به موبایل خود انتقال دهید از طریق Usb یا مموری و یا Bluetooch 

سپی به گالری موبایل اندروید خود رفته و عکس مورد نظر را باز کنید سپس گزینه اشتراک گذاری را کلیک کرده و اینستاگرام را انتخاب فرمائید 

بعد از انتخاب قسمت تنظیمات یا برش اینستاگرام CROP بعد از چند ثانیه تصویر شما رو لود کرده و از اینجاست که قسمت اصلی مطلبمان شروع م شود

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

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

دانلود فایل فتوشاپ با فرمت Psd

رمز فایل : unitazad.ir دقت در وارد کردن حروف (تمامی حروف با حروف کوچک انگلیسی می باشد)

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

ادامه مطـــلب در منبع...

Remote debugging صفحات وب

Remote debugging صفحات وب

Remote debugging همیشه یکی از چالش های طراحی صفحات وب برای گوشی های هوشمند، تست و خطایابی آنها درون محیط واقعی آنها است. برای این مشکل، راه حل هایی البته وجود دارد. سایت های وجود دارند که عکسی از صفحه شما درون دستگاه های مختلف میدهند. همچنین پکیج هایی نیز برای زبان Node js نوشته شده است که میتوانید گوشی را به سیستم متصل کنید، که به این صورت کارتان را بسیار ساده تر میکنند. اما اگر بخواهیم از این هم ساده تر سایت ریسپانسیو را درون گوشی یا تبلتمان چک کنیم، چه راه حلی وجود دارد؟ راه حل استفاده از مرورگر گوگل کروم است. این مرورگر از نسخه 32 به بعد قابلیتی به نام Remote debugging را به خودش اضافه کرده است که در آن به راحتی میتوانید گوشی را به سیستم متصل کنید و همچنین میتوانید سایت باز شده درون گوشی را از طریق سیستم inspect کنید. 

نیازمندی ها

قبل از رفتن به مراحل بعدی ابتدا باید تمام موارد زیر محیا باشد:

نسخه کروم در سیستم باید از ورژن 32 به بعد باشد

یک کابل برای متصل کردن گوشی یا تبلت به سیستم موجود باشد

و نسخه اندروید باید از ورژن 4.0 به بعد باشد

البته خود گوگل این نکته را هم گوشزد کرده است که نسخه کروم درون سیستم باید یک ورژن بالاتر از نسخه کروم درون گوشی یا تبلت باشد. البته استفاده از نسخه های هم ورژن نیز دارای احتمال خطای خیلی کمی هستند.

راه اندازی اندروید

1. فعال کردن USB Debugging ابتدا به تنظیمات اندروید رفته و به قسمت Developer options وارد شوید. در این قسمت، USB debugging را فعال کنید و پیغام هشدار آن را نیز تایید کنید.

اگر قسمت Developer options برای شما قابل مشاهده نیست در تنظیمات اندروید به قسمت About phone رفته و بر روی گزینه Build number هفت بار تپ (کلیک) کنید تا این قسمت در تنظیمات اندروید قابل مشاهده شود.

تصاویر پیوستی برای تنظیمات با زبان فارسی و انگلیسی

Remote debugging صفحات وب Remote debugging صفحات وب
Remote debugging صفحات وب Remote debugging صفحات وب

2. وصل کردن گوشی به سیستم

حالا با استفاده از کابل مناسب، گوشی را به سیستم متصل کنید. اگر بر روی سیستم عامل ویندوز کار میکنید، مطمئن شوید که درایور مناسب گوشی، نصب شده باشد.

3. اجرای برنامه کروم

یک برنامه کروم را درون گوشی خود اجرا کنید.

راه اندازی کروم در سیستم

در مرورگر کروم سیستم به صفحه chrome://inspect رفته و گزینه Discover USB devices را فعال کنید.

Remote debugging صفحات وب

بعد از فعال کردن این گزینه احتمالا در گوشی شما یک پیغام مبنی بر اجازه دسترسی صادر میشود که شما آن پیغام را تایید کنید.

خب در صفحه chrome://inspect تمام دستگاه های متصل شده به سیستم و تب های اجرا شده در کروم دستگاه ها را نشان میدهد، که شما نیز الان باید اطلاعاتی مشابه عکس زیر را مشاهده کنید.

Remote debugging صفحات وب

حالا به راحتی میتوانید تب های اجرا شده درون گوشی های هوشمندتان را از طریق سیستم، inspect کنید که اینکار با کلیک بر روی عبارت inspect انجام میشود.

با اینکار یک صفحه Developer tools کروم برای شما باز میشود که تمام ویژگی های یک Developer tools معمولی را دارد و به راحتی میتوانید به inspect کردن بپردازید.

نکته : اگر در پنجره باز شده با خطا مواجه شدید (احتمالا خطای تحریم گوگل)، باید با IP غیر ایرانی صفحه inspect را باز کنید.

ادامه مطـــلب در منبع...

آموزش نصب همزمان یک برنامه در اندروید برای دو یا چند بار

آموزش نصب همزمان یک برنامه برای چندین بار در اندروید

با سلام خدمت کاربران عزیز گروه کامپیوتر دانشگاه آزاد

با توجه به درخواست های فراوان کاربران اندروید مبنی بر آموزش نصب کردن چندین باره یک برنامه در اندروید بر آن شدیم این آموزش را تقدیم کاربران عزیزمان کنیم تآ اخر این مطلب ما را همراهی کنید ممنونیم

شروع کار

برنامه Apk Editor را نصب کنید . . . 

برای نصب دو فایل وجود دارد که فایل شماره 1 زیر را با حجم 238کیلو بایت دانلود کنید

فایل شماره 1 برنامه نصبی

بعد از نصب فایل زیر را هم روی آن برنامه نصب کنید تا برنامه ثبت و ریجستر شود در صورتی که موبایلتان پیغامی داد که آیا مایلید روی برنامه نصبی قبلی ذخیره شود بله را بزنید.

فایل شماره 2 ریجستر

فایل Apk برنامه مورد نظرتون را در مموری کارت کپی کنید
برنامه Apk Editor را اجرا کنید
و به مسیری که فایل را کپی کردید بروید.


آموزش نصب همزمان یک برنامه در اندروید برای دو یا چند بار

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

آموزش نصب همزمان یک برنامه در اندروید برای دو یا چند بار

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


آموزش نصب همزمان یک برنامه در اندروید برای دو یا چند بار
ادامه مطـــلب در منبع...