לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #12  
ישן 18-04-2007, 08:21
  JamBurry JamBurry אינו מחובר  
 
חבר מתאריך: 21.01.07
הודעות: 58
בתגובה להודעה מספר 11 שנכתבה על ידי רמי ד שמתחילה ב "קרגע זה הפיתרון האידיאלי. אם..."

כתבתי משהו פשוט, שיודע לבדוק מספר אתרים ולהפסיק ברגע שמצא כתובת.

הרעיון פשוט - לכל אתר כזה יש CLASS משלו, שיודע גם את כתובת האתר וגם איך לשלוף את הכתובת מתוך הטקסט של האתר. אנחנו יוצרים מופעים של כל CLASS כזה ושמים במערך. עכשיו רצים על המערך, קוראים לכל Class כזה לפי Interface מוגדר מראש, ומחכים שאחד האתרים יחזיר תשובה. אם קיבלנו - אנחנו מדפיסים ועוצרים. אם לא - ממשיכים לאתר הבא.

הלוגיקה לכל אתר נמצאת ב-CLASS המתאים לו, כך שאפשר גם לכתוב כמה CLASS-ים לאותו אתר, אבל כל CLASS ינסה שיטה אחרת לניתוח הטקסט.

כרגיל, לא ממש בדקתי לעומק ולא השקעתי בשיפור ביצועים.

בהצלחה.
JAM

קוד:
using System; using System.Collections.Generic; using System.IO; using System.Net; using System.Text; using System.Text.RegularExpressions; namespace IPRetrieve { ///<summary> /// Interface for a web page supplying the client's IP address ///</summary> interfaceWebDataProvider { ///<summary> /// Getter for provider's URL (i.e., http://myprovider.com) ///</summary> string URL { get; } ///<summary> /// Parser method for scraping IP address ///</summary> ///<param name="data">String containing the text of the web page</param> ///<returns>IP address if parsing successfull, String.Empty otherwise</returns> string ParseIP(string data); }; ///<summary> /// WebDataProvider implementation for http://www.whatismyip.com ///</summary> classWhatIsMyIPProvider : WebDataProvider { publicstring URL { get { return"http://www.whatismyip.com"; } } publicstring ParseIP(string data) { // Look for the <TITLE> tag in the HTML, that contains the IP address Regex expr = newRegex("<TITLE>WhatIsMyIP.com - ([0-9.]+)</TITLE>"); Match match = expr.Match(data); if (!match.Success) returnString.Empty; return match.Groups[1].Value; } } classProgram { staticvoid Main(string[] args) { // Array of providers to check WebDataProvider[] providers = newWebDataProvider[] { newWhatIsMyIPProvider(), // Add any new providers here }; for(int i=0; i<providers.Length; i++) { // Get the next provider available WebDataProvider thisProvider = providers[i]; Console.WriteLine("Provider: {0}", thisProvider.URL); try { // Try calling the provider's URL and retrieving the HTML text WebResponse response = WebRequest.Create(thisProvider.URL).GetResponse(); StreamReader reader = newStreamReader(response.GetResponseStream()); // Try parsing (screen-scraping) the provider's data string result = thisProvider.ParseIP(reader.ReadToEnd()); if(!result.Equals(String.Empty)) { // If address available, quit here Console.WriteLine(result); break; } } catch (Exception ex) { Console.WriteLine("Error: {0}", ex.Message); } } } } }
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 12:15

הדף נוצר ב 0.08 שניות עם 10 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר