مقدمه ویندوز برای برقراری ارتباط با Internet Service Provide- ISP- شما از طریق مودم و خط تلفن در اتصالات dial-up networking ، از سرویسی خاص به اسم RAS (Remote Access Service) استفاده می کند . این سرویس دارای یک واسط برنامه نویسی است که RAS API نام دارد . این واسط شامل مجموعه ای از توابع است که شما می توانید آنها را در برنامه خود صدا بزنید . RAS API ابزاری بسیار قدرتمند و قابل انعطاف است همچنین بسیار پیچیده می باشد . خوشبختانه برای استفاده راحتتر ، مایکروسافت تعدادی تابع را در مجموعه ای به اسم WinInet API قرار داده تا بتوان از آنها برای برقراری ارتباط و کنترل اتصال استفاده کرد
پاسخ : آشنایی با RAS API و WinInet API آشنایی با WinInet API : WinInet API مجموعه ای از توابع است که امکان ایجاد و توسعه برنامه های اینترنتی را بصورتی ساده ، سریع و کارآمد برای برنامه نویسان مهیا می کند . با استفاده از این مجموعه توابع شما می توانید برنامه هایی بنویسید که از منابع اینترنتی با استفاده از پروتکلهایی چون HTTP و FTP استفاده کنند . همچنین WinInet به شما اجازه می دهد تا بتوانید ارتباطی dial-up با یک ISP ایجاد نموده و آنرا کنترل کنید . مزیـت اصلی توابع WinInet آینست که شما نیازی به دانستن ساختار پروتکلهای ارتباطی و نیز برنامه نویسی Socket نخواهید داشت . بعبارت دیگر WinInet یک واسط سطح بالا را برای کار با منابع اینترنتی ارائه می دهد
پاسخ : آشنایی با 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 : برای تنظیم کردن وضعیت جاری ارتباط اینترنتی استفاده می شود . در قسمت بعدی این سلسه مباحث جزئیات این توابع را بررسی کرده و نهایتاً برنامه ای کاربردی برای کار با این توابع در ویژوال بیسیک ارائه خواهم داد .
پاسخ : آشنایی با 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
پاسخ : آشنایی با 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
پاسخ : آشنایی با 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
پاسخ : آشنایی با 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
پاسخ : آشنایی با 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
پاسخ : آشنایی با RAS API و WinInet API بررسی جزئیات توابع Dial-Up موجود در WinInet : 1 – تابع InternetAutodial : بطور اتوماتیک باعث شماره گیری اتصال پیش فرض اینترنت توسط مودم می شود . اگر اتصال با موفقیت انجام شود تابع مقدار true و در غیر اینصورت false بر می گرداند . پارامترهای ورودی تابع : dwFlags : فلگ کنترل کننده عملیات اتصال می باشد و یکی از مقادیر زیر را می تواند داشته باشد : - INTERNET_AUTODIAL_FORCE_ONLINE - INTERNET_AUTODIAL_FORCE_UNATTENDED dwReserved : پارامتری رزرو شده است و بایستی صفر باشد .
پاسخ : آشنایی با 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 است که رزرو شده بود و بایستی صفر باشد .