2012-01-15 4 views
2

пытается выполнить ping-домен и посмотреть, получил ли я код ответа, чтобы узнать, зарегистрирован ли он. получение постоянных положительных результатов из следующего кода - любые идеи?Pinging Domain C#

public static string Check(string keyword) 
    { 
     Ping pingSender = new Ping(); 
     PingOptions options = new PingOptions(); 

     // Use the default Ttl value which is 128, 
     // but change the fragmentation behavior. 
     options.DontFragment = true; 

     // Create a buffer of 32 bytes of data to be transmitted. 
     string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; 
     byte[] buffer = Encoding.ASCII.GetBytes(data); 
     int timeout = 120; 
     PingReply reply = pingSender.Send(keyword, timeout, buffer, options); 
     if (reply.Status == IPStatus.Success) 
     { 

      return "found"; 
     } 
     else 
     { 
      return "not found"; 
     } 
    } 


    private void hunt_Click(object sender, EventArgs e) 
    { 
     string keyword = txtKeyword.Text; 
     txtOutput.Text = Check(keyword); 
    } 

любая помощь ценится :-)

+0

Можете ли вы написать, для каких ключевых слов вы его пытались выполнить? –

+0

Возможный дубликат [Header Check C# всегда 403?] (Http://stackoverflow.com/questions/8874839/header-check-c-sharp-is-always-403) – Jason

+0

Я пробовал использовать код выше с помощью домен «www.goosdfdsgle.com» и получить исключение сокета «Это обычно временная ошибка при разрешении имени хоста и означает, что локальный сервер не получил ответа от авторитетного сервера». Похоже на правильное поведение. – Slugart

ответ

0

эй я побежал этот код и он работает, (исключение, когда worng IP или DNS вводится), почему бы не использовать эту перегрузку?

 public static string Check(string keyword) 
     { 
     Ping pingSender = new Ping(); 
     //PingOptions options = new PingOptions(); 

     // Use the default Ttl value which is 128, 
     // but change the fragmentation behavior. 
     // options.DontFragment = true; 

     // Create a buffer of 32 bytes of data to be transmitted. 
     //string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; 
     // byte[] buffer = Encoding.ASCII.GetBytes(data); 
     // int timeout = 120; 
     try 
     { 
      PingReply reply = pingSender.Send(keyword); 
      return "found"; 
     } 
     catch 
     { 
      return "not found"; 
     } 


    }