Яндекс Тиц. Программная реализация

Написал на досуге вспомогательную программу для определения тица Яндекса.  Реализация на c#. В ближайшее  время на всеобщее обозрение появится бесплатная программа, которая позволит быстро определять google pagerank и тиц яндекса, возможно еще какой-нибудь полезный функционал.Реализация определения Яндекс Тиц-а

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Net.Sockets;
  5. using System.IO;
  6. using System.Xml.Linq;
  7.  
  8. namespace CheckCY
  9. {
  10.   public struct CYResult
  11.   {
  12.     public CYResult(string rang, string value)
  13.     {
  14.       this.rang = rang;
  15.       this.value = value;
  16.     }
  17.     public string rang;
  18.     public string value;
  19.   }
  20.   public class CheckYandexCY
  21.   {
  22.     public static CYResult Process(string url)
  23.     {
  24.       Socket _socListener = new Socket(
  25.          AddressFamily.InterNetwork,
  26.          SocketType.Stream,
  27.          ProtocolType.IP);
  28.       try
  29.       {
  30.         string yandexhost = "bar-navig.yandex.ru";
  31.         string yandexua = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.6) Gecko/20060728 Firefox/1.5";
  32.         _socListener.Connect(yandexhost, 80);
  33.         if (_socListener.Connected)
  34.         {
  35.           string headers = string.Empty;
  36.           string ch = string.Empty;
  37.           headers += "GET /u?show=31&url=" + url + " HTTP/1.1\r\n";
  38.           headers += "Host: " + yandexhost + "\r\n";
  39.           headers += "User-Agent: " + yandexua + "\r\n";
  40.           headers += "Connection: Close\r\n\r\n";
  41.           _socListener.Send(Encoding.UTF8.GetBytes(headers));
  42.  
  43.           int total = 0;
  44.           const int bufferSize = 10240;
  45.           byte[] buffer = new byte[bufferSize];
  46.           using (MemoryStream ms = new MemoryStream())
  47.           {
  48.             while (true)
  49.             {
  50.               int receive = _socListener.Receive(buffer, bufferSize, SocketFlags.None);
  51.               if (receive > 0)
  52.               {
  53.                 total += receive;
  54.                 ms.Write(buffer, 0, receive);
  55.               }
  56.               else
  57.               {
  58.                 break;
  59.               }
  60.             }
  61.             string s = Encoding.UTF8.GetString(ms.GetBuffer()).Trim();
  62.             string [] ss = s.Split(new string[] { "\r\n\r\n" }, StringSplitOptions.None);
  63.             if (ss.Length > 1)
  64.             {
  65.               string xmltext = ss[1];
  66.               XDocument doc = XDocument.Parse(xmltext);
  67.               foreach(var v in doc.Descendants("tcy"))
  68.               {
  69.                 XAttribute a = null;
  70.                 a = v.Attribute("rang");
  71.                 string rang = a == null ? string.Empty : a.Value;
  72.                 a = v.Attribute("value");
  73.                 string value = a == null ? string.Empty : a.Value;
  74.                 return new CYResult(rang, value);
  75.               }
  76.             }
  77.           }
  78.         }
  79.       }
  80.       catch
  81.       {
  82.       }
  83.       finally
  84.       {
  85.         ((IDisposable)_socListener).Dispose();
  86.       }
  87.  
  88.       return new CYResult();
  89.     }
  90.  
  91.   }
  92. }

Запись опубликована в рубрике Программирование с метками , . Добавьте в закладки постоянную ссылку.
Интересная статья? Поделитесь ею пожалуйста с другими:

Опубликовать в Twitter Написать в Facebook Поделиться ВКонтакте В Google Buzz Записать себе в LiveJournal Показать В Моем Мире В дневник на LI.RU Поделиться ссылкой в Моем Круге

Приглашаю присоединиться ко мне:

Follow Me Я в FaceBook Я ВКонтакте или подпишитесь на обновления блога по RSS

9 комментариев: Яндекс Тиц. Программная реализация

  1. Роман говорит:

    Программная реализация, интересно.

  2. Фотограф говорит:

    интересно когда будет программа? И где можно будет ее скачать? надеюсь что на этом блоге тоже

  3. kovad говорит:

    А зачем? Полно готовых программ для браузеров. Всё покажут и расскажут.

  4. Сергей говорит:

    …я за программу, на браузерах «улучшалки» тормозят его работу!

  5. Сергей говорит:

    Спасибо за скрипт

  6. Dima говорит:

    Да, присоединяюсь к посту выше, как этим попользоваться?

  7. Warcraft3 говорит:

    И в чем смысл ? Чем вам не понравился популярный RDS bar для браузеров? Он выполняет аналогичные функции, да и с браузера удобней юзать его, не нужно открывать дополнительных программ для проверки ТИЦ или PR.

  8. Александр говорит:

    Да, что-то я тоже не очень въезжаю в тему. Зачем?

  9. входные двери говорит:

    Познавательно, понравилось. Мои благодарности!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

*


Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>