1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، ثبت نام کنید.
    بستن اطلاعیه

آشنایی با RAS API و WinInet API

شروع موضوع توسط minaaa ‏22/10/11 در انجمن .Net

  1. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    مقدمه

    ویندوز برای برقراری ارتباط با Internet Service Provide- ISP- شما از طریق مودم و خط تلفن در اتصالات dial-up networking ، از سرویسی خاص به اسم RAS (Remote Access Service) استفاده می کند . این سرویس دارای یک واسط برنامه نویسی است که RAS API نام دارد . این واسط شامل مجموعه ای از توابع است که شما می توانید آنها را در برنامه خود صدا بزنید . RAS API ابزاری بسیار قدرتمند و قابل انعطاف است همچنین بسیار پیچیده می باشد .
    خوشبختانه برای استفاده راحتتر ، مایکروسافت تعدادی تابع را در مجموعه ای به اسم WinInet API قرار داده تا بتوان از آنها برای برقراری ارتباط و کنترل اتصال استفاده کرد
     
  2. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : آشنایی با RAS API و WinInet API

    آشنایی با WinInet API :

    WinInet API مجموعه ای از توابع است که امکان ایجاد و توسعه برنامه های اینترنتی را بصورتی ساده ، سریع و کارآمد برای برنامه نویسان مهیا می کند . با استفاده از این مجموعه توابع شما می توانید برنامه هایی بنویسید که از منابع اینترنتی با استفاده از پروتکلهایی چون HTTP و FTP استفاده کنند . همچنین WinInet به شما اجازه می دهد تا بتوانید ارتباطی dial-up با یک ISP ایجاد نموده و آنرا کنترل کنید .
    مزیـت اصلی توابع WinInet آینست که شما نیازی به دانستن ساختار پروتکلهای ارتباطی و نیز برنامه نویسی Socket نخواهید داشت . بعبارت دیگر WinInet یک واسط سطح بالا را برای کار با منابع اینترنتی ارائه می دهد
     
  3. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : آشنایی با RAS API و WinInet API

    امکانات Dial-Up موجود در WinInet :

    تا قبل از ارائه اینترنت اکسپلورر ورژن ۴ ، WinInet تنها دارای دو تابع dial-up بود :

    تابع InternetAttemptConnect : برای بررسی اینکه آیا یک ارتباط به اینترنت وجود دارد یا نه استفاده می شد . اگر هیچ اتصالی به اینترنت وجود نداشت این برنامه کادر تبادلی dial-up networking را نمایش می داد و کاربر اجازه داشت تا یک اتصال را برای وصل شدن به اینترنت انتخاب کند .

    تابع InternetCheckConnection : تابع با استفاده از انجام یک دستور ping به url ای که به تابع داده شده ، بررسی می کرد که آیا ارتباطی به اینترنت وجود دارد یا نه .

    این دو تابع دارای محدودیتهای فراوانی بودند . برای مثال تابع اول نمی تواند بطور اتوماتیک اتصال به اینترنت را برقرار کند و تابع دوم نیز نمی تواند هیچ اطلاعاتی در مورد نوع ارتباط به ما بدهد .

    IE نسخه ۴ ، تعدادی تابع جدید برای WinInet معرفی کرد که برخی از آنها عبارتند از :

    تابع InternetGetConnectedState : اطلاعاتی در مورد نوع ارتباط استفاده شده را بیان می کند . برای مثال این تابع اطلاع می دهد که نوع ارتباط به اینترنت از طریق مودم است یا شبکه LAN و یا از طریق **** .

    تابع InternetAutodial : این امکان را فراهم می سازد تا یک ارتباط اینترنتی اتوماتیک از طریق مودم را با استفاده از مدخل اتصال پیش فرض که کاربر آنرا در dial-up networking مشخص کرده ایجاد کنید .

    تابع InternetDial : این تابع کارآمدتر از تابع InternetAutodial است و کادری را نمایش می دهد که کاربر می تواند نوع مدخل مورد نظر خود برای ارتباط تلفنی با اینترنت را انتخاب کند .

    تابع InternetAutodialHangup : برای قطع کردن اتصالی مودمی که از طریق تابع InternetAutodial برقرار شده استفاده می شود .

    تابع InternetHangUp : برای قطع کردن اتصالی مودمی که از طریق تابع InternetDialبرقرار شده استفاده می شود .

    تابع InternetSetDialState : برای تنظیم کردن وضعیت جاری ارتباط اینترنتی استفاده می شود .

    در قسمت بعدی این سلسه مباحث جزئیات این توابع را بررسی کرده و نهایتاً برنامه ای کاربردی برای کار با این توابع در ویژوال بیسیک ارائه خواهم داد .
     
  4. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : آشنایی با RAS API و WinInet API

    اطلاعات بیشتری در مورد WinInet :


    در این بخش ما تنها توابع dial-up موجود در WinInet API را بررسی کردیم اما همانطور که در ابتدا گفته شد WinInet دارای امکانات فراوانی در زمینه کار با اینترنت است . برای آشنایی بیشتر با این امکانات در زیر جداولی ارائه شده که به اختصار امکانات مختلف این مجموعه تابع را نشان می دهد :

    توابع Dial-Up :

    Name


    Description

    InternetGetConnectedState


    Retrieves the current state of the Internet connection

    InternetAutodial


    Initiates an unattended dial-up connection

    InternetAutodialHangup


    Disconnects a modem connection initiated by

    InternetDial


    Initiates a dial-up connection

    InternetHangUp


    Disconnects a modem connection initiated by InternetDial

    InternetGoOnline


    Prompts the user for permission to initiate a dial-up connection to the given URL

    InternetSetDialState


    Sets the current state of the Internet connection
     
  5. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : آشنایی با RAS API و WinInet API

    توابع عمومی اینترنت :


    Name


    Description

    InternetOpen


    Initializes the Win32 Internet functions

    InternetConnect


    Opens an FTP, Gopher, or HTTP session for a given site

    InternetCloseHandle


    Closes a single Internet handle or a subtree of Internet handles

    InternetErrorDlg


    Displays a dialog box for the error that is passed to InternetErrorDlg

    InternetFindNextFile


    Continues a file search started as a result of a previous call to FtpFindFirstFile or GopherFindFirstFile

    InternetGetLastResponseInfo


    Retrieves the last Win32 Internet function error description or server response on the thread calling this function

    InternetLockRequestFile


    Allows the user to place a lock on the file being used

    InternetQueryDataAvailable


    Queries the amount of data available

    InternetQueryOption


    Queries an Internet option on the specified handle

    InternetReadFile


    Reads data from a handle opened by the InternetOpenURL, FtpOpenFile, GopherOpenFile, or HttpOpenRequest function

    InternetReadFileEx


    Reads data from a handle opened by the InternetOpenURL, FtpOpenFile, GopherOpenFile, or HttpOpenRequest function

    InternetSetFilePointer


    Sets a file position for InternetReadFile

    InternetSetOption


    Sets an Internet option

    InternetSetStatusCallback


    Sets up a callback function that Win32 Internet functions can call as progress is made during an operation

    InternetStatusCallback


    Placeholder for the application-defined status callback function

    InternetTimeFromSystemTime


    Formats a date and time according to the specified RFC format (as specified in the HTTP version 1.0 specification)

    InternetTimeToSystemTime


    Takes an HTTP time/date string and converts it to a SYSTEMTIME structure

    InternetUnlockRequestFile


    Unlocks a file that was locked using InternetLockRequestFile

    InternetWriteFile


    Writes data to an open Internet file

    InternetConfirmZoneCrossing


    Checks for changes between secure and nonsecure URLs
     
  6. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : آشنایی با RAS API و WinInet API

    توابع URL :



    Name


    Description

    InternetCanonicalizeUrl


    Canonicalizes a URL, which includes converting unsafe characters and spaces into escape sequences.

    InternetCombineUrl


    Combines a base and relative URL into a single URL. The resultant URL will be canonicalized.

    InternetCrackUrl


    Cracks a URL into its component parts.

    InternetCreateUrl


    Creates a URL from its component parts.

    InternetOpenUrl


    Begins reading a complete FTP, Gopher, or HTTP URL
     
  7. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : آشنایی با RAS API و WinInet API

    توابع FTP :



    Name


    Description

    FtpCreateDirectory


    Creates a new directory on the FTP server

    FtpDeleteFile


    Deletes a file stored on the FTP server

    FtpFindFirstFile


    Searches the specified directory of the given FTP session

    FtpGetCurrentDirectory


    Retrieves the current directory for the given FTP session

    FtpGetFile


    Retrieves a file from the FTP server and stores it under the specified file name, creating a new local file in the process

    FtpPutFile


    Stores a file on the FTP server

    FtpRemoveDirectory


    Removes the specified directory on the FTP server

    FtpRenameFile


    Renames a file stored on the FTP server

    FtpSetCurrentDirectory


    Changes to a different working directory on the FTP server
     
  8. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : آشنایی با RAS API و WinInet API

    توابع HTTP :



    Name


    Description

    HttpAddRequestHeaders


    Adds one or more HTTP request headers to the HTTP request handle

    HttpEndRequest


    Ends an HTTP request

    HttpOpenRequest


    Opens an HTTP request handle

    HttpQueryInfo


    Queries for information about an HTTP request

    HttpSendRequest


    Sends the specified request to the HTTP server

    HttpSendRequestEx


    Sends the specified request to the HTTP server
     
  9. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : آشنایی با RAS API و WinInet API

    بررسی جزئیات توابع Dial-Up موجود در WinInet :

    1 – تابع InternetAutodial : بطور اتوماتیک باعث شماره گیری اتصال پیش فرض اینترنت توسط مودم می شود . اگر اتصال با موفقیت انجام شود تابع مقدار true و در غیر اینصورت false بر می گرداند .
    پارامترهای ورودی تابع :
    dwFlags : فلگ کنترل کننده عملیات اتصال می باشد و یکی از مقادیر زیر را می تواند داشته باشد :
    - INTERNET_AUTODIAL_FORCE_ONLINE
    - INTERNET_AUTODIAL_FORCE_UNATTENDED
    dwReserved : پارامتری رزرو شده است و بایستی صفر باشد .
     
  10. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : آشنایی با RAS API و WinInet API

    چگونگی declare کردن تابع :

    Public Declare Function InternetAutodial Lib “wininet.dll” (ByVal dwFlags As Long, ByVal dwReserved As Long) As Long

    2 – تابع InternetAutodialHangup : باعث قطع کردن یک اتصال dial-up اتوماتیک می شود . اگر قطع اتصال با موفقیت انجام شود تابع مقدار true و در غیر اینصورت false برمی گرداند . تابع دارای یک پارامتر ورودی به اسم dwReserved است که رزرو شده بود و بایستی صفر باشد .