Mobin@Freedom

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

Mobin@Freedom

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

طراحی یک مرورگر وب ساده

سلام
 حال همگی خوبه؟ خدا رو شکر...با عرض پوزش بابت اینکه آپدیت یه خورده دیر شد،این چند رو کلی کار پیش اومد.
 در خدمت شما هستم با یک مطلب برنامه نویسی در سطح متوسط.چیزی که امروز میخوایم یاد بگیریم طراحی یک Web Browser ساده با Visual C هست که اگر حتی یه خورده هم با Visual C آشنا باشید میتونید با دنبال کردن توضیحات یک مرورگر وب ساده رو با کنترل Web Browser طراحی کنید.
 خوب،اگر Visual Studio 6.0 رو نصب دارید که چه بهتر،اگر ندارید نصب کنید و Microsoft Visual C++ 6.0 رو باز کنید.برای طراحی یک Web Browser احتیاج به استفاده از MFC داریم،بنابراین از منوی File گزینه ی New رو انتخاب کرده و در پنجره ی باز شده از سربرگ Projects گزینه ی MFC AppWizard رو انتخاب کنید.حالا نام پروژه رو WebBrowser یا هر چیزی که دوست دارید بدید و Ok کنید.
 الان پنجره ای مقابل شما هست که از شما میپرسه برنامه ای که دارید طراحی می کنید چطوریاست؟! شما Dialog based رو انتخاب کنید و Next رو کلیک کنید.در مرحله ی بعد هم Finish رو کلیک کنید و در آخر Ok رو بزنید تا محیط کار در اختیار شما قرار بگیره.
 حالا اولین کاری که میکنید این هست که Label و Botton ها رو پاک کنید.بعد از این کار ، به صورت زیر یک کنترل Web Browser رو روی فرم قرار بدید.
 1- روی فرم راست کلیک کنید و Insert ActiveX Control رو انتخاب کنید.
 2- از لیست ظاهر شده Microsoft Web Browser رو انتخاب و روی Ok کلیک کنید.

 الان روی فرم شما باید یک کنترل Web Browser قرار داشته باشه که میتونید اندازش رو تغییر بدید.حالا در مرحله ی بعدی نیاز به یک Edit Box و Button دارید تا آدرس سایت رو توی Edit Box تایپ کنید و با کلیک رو Button از سایت بازدید کنید پس اول یک Edit Box روی فرم قرار داده و نامش رو بدید IDC_URL و بعد از اضافه کردن یک Button در کنارش نام اون رو IDC_BROWSE بگذارید.بعد از این عمل برای اینکه به مقداری که در Edit Box نوشته میشه و همچنین کنترل Web Browser دسترسی داشته باشید باید دو تا متغیر برای این دو کنترل تعریف کنید.
 برای نسبت دادن یک متغیر به  کنترل Web Browser روی فرم راست کلیک و ClassWizard رو انتخاب کنید.حالا در سربرگ Member Variables کنترل IDC_EXPLORER1 رو انتخاب کنید و Add Variable رو بزنید.اول دو تا پنجره باز میشه که اول رو اوکی بزنید،دومی رو هم برای اضافه شدن کلاس مورد نیاز برای استفاده از کنترل Web Browser اوکی کنید.در مرحله سوم پنجره ای نمایش داده میشه که نام متغیر در اون خواسته میشه،من دادم m_browser شما هم میتونید همین یا هر نامی که دوست دارید رو بدید.بعد از این کنترل نوبت به کنترل Edit Box میرسه،از طریق همون ClassWizard این دفعه از سربرگ Member Variables کنترل IDC_URL رو انتخاب و مثل کنترل قبل یه اسم بهش بدید.من نامش رو m_URL دادم.
 حالا رسیدیم به مرحله ی آخر که دو خط کد نویسی هست،خداییش نوشتن برنامه به این راحتی حال آدم رو به هم میزنه! ولی چه کنم که بعد از سالیان دراز به این نتیجه رسیدم که همین چیزاست که واسه آدم پول میشه نه برنامه های نفوذ به شبکه ی Command Line که نوشتنشون گاه هفته ها طول میکشه،بگذیم...
 برای راحتی کار روی دکمه ی Browse دوبار کلیک کنید و در پنجره باز شدن Ok رو بزنید.در این قسمت کل کدی که قرار هست بنویسید چیزی هست که در زیر براتون نوشتم.

;(UpdateData(TRUE
;(m_browser.Navigate(m_URL,NULL,NULL,NULL,NULL

 تابع UpdateData با پارامتر TRUE برای این هست که مقدار موجود در Edit Box به متغیرش که m_URL باشه نسبت داده بشه و بتونیم ازش در متد Navigate استفاده کنیم.متد Navigate هم که مشخصه،آدرس رو با استفاده از متغییر m_URL میگیره و در کنترل Web Browser نمایش میده.

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

آهنگ QUE HICISTE

سلام
 برنامه نویسی و شبکه کار نداریم که بد حال باشه،پس حال همگی خوبه...
 گفتم آپدیت امشب رو یه موزیک مهمون من باشید.آهنگی که براتون upload کردم از آلبوم جدید خانم لوپز هست و می تونید از لینک زیر دریافتش کنید.
 دریافت فایل
 حجم فایل : 2MB
 یک خورده مشغول انجام تحقیق هایی که هفته آینده باید تحویلشون بدم هستم،انشاالله فردا پس فردا سرم خلوت شد یک مطلب برنامه نویسی پست میکنم تا دوستان علاقه مند به برنامه نویسی گله مند نشن که چرا اینقدر مطالب شبکه پست می کنی!

 تا فردا...

راه اندازی یک وب سرور

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

 سئوال اول :
  " ۱.من می خوام یک سرور خانگی بزنم.(برای سه سایت شخصی) طبعا اینترنت مورد نیاز من فراتر از ۶۴ باید باشد (برای کشوری مثل ایران که حد اکثر سرعت آن ۵۶ است) برا همین یک ای دی اس ال می گیرم (۲۵۶/۲۵۶) آیا بهتر از  ای دی اس ال هست و چه اشتراکات اینترنتی دیگری می شود گرفت(با ذکر قیمت لطفا)؟ "
 پاسخ :
  اگر ترافیک سایت ها رو هم می گفتید خیلی خوب میشد.پهنای باند مورد نیاز برای هاست کردن سه تا سایت بستگی به ترافیک اونها داره،به صورت ساده یعنی چند نفر به صورت همزمان از این سه تا سایت بازدید میکنند؟
  اگر فرض کنیم حداکثر 16 بازدید کننده به طور همزمان درخواستشون برای دریافت صفحات وب به سمت سرور شما بفرستند با در نظر گرفتن 4 کیلوبایت پهنای باند برای هر بازدید کننده یک سرویس ADSL با 512 کیلوبیت Send جواب کار شما رو میده.16 کاربر به صورت همزمان یعنی از این سه سایت هر کدوم به طور متوسط 5 بازدید کننده داشته باشند و به طور همزمان درخواست دریافت صفحات وب رو به سمت سرور شما بفرستند.
  سرویس ADSL با 512 کیلوبیت ارسال و 1024 کیلوبیت دریافت بدون محدودیت ماهیانه 400 هزار تومن هزینش هست و سخت میدونم بتونید این سرویس رو بگیرید.کلاً سرویسهای بالای 128 کیلوبیت به کاربران خانگی ارائه نمیشه،مگر اینکه با سرویس دهنده به توافق برسید یا از طرف یک شرکت درخواست بدید که در این صورت میتونید از سرویسهای با سرعت بالاتر استفاده کنید،حتی بالاتر از 512/1024.در صورتی که مودم شما ADSL2 پلاس باشید میتونید تا 8 مگابیت دریافت و 1 مگابیت ارسال هم داشته باشد.اگر این پهنای باند کافی نیست ساده ترین راه پیش رو و ممکن استفاده از سرویس های Wireless هست که حداکثر امکان انتقال 54 مگابیت داده رو در واحد ثانیه رو دارن.اگر مایل به استفاده از سرویس های وایرلس هستید در خرید تجهیزات دقت کنید.تجهیزات با استاندارد 802.11b حداکثر سرعت 11 مگابیت رو دارند اما استاندارد های 802.11a و 802.11g توانایی انتقال دادها تا حداکثر 54 مگابیت در ثانیه رو دارن.تجهیزات وایرلس یا به صورت امانی از طرف ISP به شما داده میشه و اگر اینطور نبود حداقل 150 هزار تومن باید هزینه خرید Access Point و آنتن وایرلس کنید.

  سئوال دوم :
  "   ۲.یک کامپیوتربرای سرور شدن(طبعا بدون نیاز به مانیتور و موس و...)چه قد واسم خرج ور میداره؟(چیزایی که لازم دارم:یک هارد۲۰ یک سی پی یو (سرعتش رو شما بگین) یک مادر بورد و یک کیس و رم (بازم سرعتش با شما))(ویندوز چی نصب کنم ؟طبعا سرور ۲۰۰۳) " 
  پاسخ :
   این مسئله هم بستگی به ترافیک سایت های هاست شده ، سیستم عامل سرور و برنامه ی نصب شده بر روی اون و قابلیت های سرور شما داره.منظور از قابلیت ها به عنوان مثال توانایی در اجرای فایلهای php یا asp هست که برای اجرا شدن نیاز به استفادهاز توانایی پردازش CPU دارند.برای کاری که شما قصد انجامش رو دارید یک CPU ی 2.4 گیگاهرتز Full Cache با یک گیگابایت RAM و هارد دیسک دور بالا مناسب هست.البته سخت افزار تخصص من نیست و نمیتونم بیشتر از این در این زمینه کمکتون کنم اما فکر نمیکنم برای هاست کردن کمتر 10 سایت با ترافیک متوسط به کامپیوتری با مشخصات خاص و بالاتر از این نیاز داشته باشید.در مورد قیمت هم باید بگم بین کامپیوتر های سرور و دسکتاپ اختلاف قیمت وجود داره،به عنوان مثال یک مادربورد برای سرور که Dual Processor باشه هزینه ی بیشتری رو برای شما داره بنابراین اول باید نوع کامپیوتری که میخواید تهیه کنید مشخص بشه.
   سیستم عامل هم میتونید از Windows 2000 Advanced Server یا هر سیستم عامل دیگه ای که امکان نصب وب سرور بر روی اون باشه استفاده کنید.

  سئوال سوم :
  "  ۳.سایت یا کتابی برای آموزش اینکه چگونه سرور کنیم یک کامپوتر را؟ "
  پاسخ :
   من تا به حال چنین کتاب یا سایتی ندیدم اما میتونید آموزش های نصب وب سرور ( به عنوان مثال Apache ) و سایر چیزهایی که نیاز دارید رو به طور جداگانه به روی اینترنت پیدا کنید.

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

 بهترین سرویس هم فکر میکنم سرویس ADSL با سرعت  128/128 که هزینه ی تقریبی 25 هزار تومان در ماه رو داره باشه.در این حالت در صورت در نظر گرفتن 4 کیلوبایت پهنای باند برای هر بازدید کننده میتونید به طور همزمان پاسخگوی 4 بازدید کننده باشید.کمتر پیش میاد وب سایتی با حداکثر 400 بازدید کننده در روز چهار درخواست به طور همزمان داشته باشه.

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

 به امید دیدار

ایجاد کانکشن PPPOE روی ویندوز هایی که PPPOE رو ساپورت نمیکنن

سلام
 ساختن کانکشن PPPOE بعد از گذاشتن مودم ADSL روی مود Bridge در ویندوزهای XP و بالاتر خیلی ساده هست اما در ویندوز های پایین تر از XP به مشکل بر میخورید که برای حل کردنش باید از یک برنامه ی جانبی کمک بگیرید.
 من دو تا نرم افزار به نامهای WinPoET و RASPPPOE رو تست کردم و از RASPPPOE بیشتر خوشم اومد.این نرم افزار رو میتونید از لینک زیر دریافت کنید و بعد از خوندن راهنمای استفادش یک کانکشن PPPOE روی ویندوزهایی که کانکشن PPPOE رو ساپورت نمیکن بسازید.
 دریافت فایل
 حجم فایل : 150KB

 اگر مشکلی پیدا کردید کامنت بگذارید،خوشحال میشم کمکتون کنم.

 

فعال کردن MySQL در PHP 5

سلام
 امروز به خاطر نصب مجدد ویندوز مجبور شدم Apache ، PHP و MySQL رو دوباره نصب کنم.قبل از نصب همش فکرم مشغول این بود که باز MySQL روی PHP 5 میخواد بازی دربیاره... آخه دفعه ی قبل کلی باهاش ور رفتم تا MySQL تو PHP 5 فعال شد.
 نمیدونم مشکل از کجاست،تنظیمات ساده ای داره اما هر دفعه که تنظیمات رو انجام میدم باید دو سه دفعه extention مربوط به MySQL رو غیر فعال و فعال کنم تا PHP بتونه MySQL رو بشناسه.به هر حال،چون در PHP 5 سرویس MySQL به صورت پیش فرض فعال نیست گفتم تغییرات لازم رو اینجا بنویسم تا هم یاداشتی باشه برای خودم و هم راهگشای کسانی که این مسئله براشون سئوال هست.
 در PHP 5 بر خلاف PHP 4 باید با انجام تغییرات کوچیکی در فایل php.ini سرویس mysql رو فعال کنید تا بتونید از این بانک اطلاعاتی استفاده کنید.قبل از هر چیز لطفاً از موارد زیر مطمئن بشید.
 1- از قرار داشتن فایلهای php.ini و libmysql.dll در دسترس وب سرور اطمینان پیدا کنید.برای تست این موضوع در قسمت Run از منوی Start نام این فایل ها رو به صورت جداگانه در دو مرحله نوشته و Enter کنید.در مرحله ی اول با نوشتن php.ini و Enter کردن یک فایل متنی به نمایش در خواهد آمد و در مرحله ی بعد با نوشتن libmysql.dll و Enter کردن پنجره ای با دکمه ی Open with مقابل شما قرار خواهد گرفت.در صورتی که هنگام فراخوانی هر کدام از فایلها به پیغام خطا با نمادی قرمز رنگ مواجه شدید مسیر فایل ها را در PATH ویندوز اضافه کنید.
 2- از وجود فایل php_mysql.dll در پوشه ی ext اطمینان حاصل کنید.

 حالا تنها احتیاج به یک تغییر کوچیک در فایل php.ini دارید.ابتدا خطی که با extension_dir شروع میشه رو پیدا کنید و مقدار پیش فرض مقابلش رو به صورت زیر تغییر بدید.

"extension_dir = "D:\php5ext

 در PHP 5 تمام extension ها از جمله extension مربوط به MySQL در شاخه ی ext هست،D:\php5 هم به خاطر این هست که فایلهای PHP رو در درایو D و توی شاخه ی php5 ریختم،بسته به محل پوشه ی php خودتون مسیر رو تغییر بدید.
 بعد خط زیر رو پیدا کنید و فقط سیمی کالن ( ; ) اولش رو پاک کنید تا extention مربوط به MySQL فعال بشه.

extension=php_mysql.dll;

 حالا تغییرات فایل رو Save کنید و سیستم رو یکبار restart کنید.بعد از بالا اومدن ویندوز باید بتونید از توابع MySQL در کدهای PHP که می نویسید استفاده کنید.

 اینم از update امروز...