2010-05-20 6 views
10

저는 프록시 서버와 해당 포트에 대해 꽤 큰 목록을 가지고 있습니다. 그들이 작동하는지 여부를 어떻게 확인할 수 있습니까?- 프록시가 작동하는지 테스트하는 방법?

+0

'working'을 정의하십시오. – mafu

+0

이것이 C#과 어떤 관련이 있는지 잘 모르겠습니다. 또한 나는이 유형의 질문이 serverfault.com에서 더 잘 처리 될 것이라고 생각합니다. – joshlrogers

+1

두 번째 생각에 그는 C# 코드를 사용하여 _working_하는지 확인하는 방법을 묻고 있습니다. – mafu

답변

10

실무합니까? 글쎄, 당신은 그들이 작동하는지 확인하기 위해 그들을 사용해야합니다.

온라인 상태인지 확인하려면 ping이 첫 번째 단계라고 생각합니다.

.NET에는 Ping class이 있습니다.

using System.Net.NetworkInformation; 

private static bool CanPing(string address) 
{ 
    Ping ping = new Ping(); 

    try 
    { 
     PingReply reply = ping.Send(address, 2000); 
     if (reply == null) return false; 

     return (reply.Status == IPStatus.Success); 
    } 
    catch (PingException e) 
    { 
     return false; 
    } 
} 
+0

핑 (ping)은 Google이나 다른 웹 사이트를 검색 할 수 있는지 여부를 확인하지 않습니다. 나는 사이트를 탐색하려고한다. 라우터 페이지 또는 불합리한 페이지로 리디렉션됩니다. html을 다운로드하고 확인중인 사이트의 특정 단어가 들어 있는지 확인하십시오. 예 : google.com에 'schema.org'라는 단어가 포함되어 있습니다. htmlsourceCode에 들어 있으면 그 프록시로 인터넷 서핑을 검색 할 수 있습니다. –

1

이 시도 :

public static bool SoketConnect(string host, int port) 
{ 
    var is_success = false; 
    try 
    { 
     var connsock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 
     connsock.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 200); 
     System.Threading.Thread.Sleep(500); 
     var hip = IPAddress.Parse(host); 
     var ipep = new IPEndPoint(hip, port); 
     connsock.Connect(ipep); 
     if (connsock.Connected) 
     { 
      is_success = true; 
     } 
     connsock.Close(); 
    } 
    catch (Exception) 
    { 
     is_success = false; 
    } 
    return is_success; 
} 
+2

왜 500ms 지연? – user962284

+0

좋은 질문입니다. 처음에는 시간 제한을 의미한다고 생각했습니다. – Proximo

0
string strIP = "10.0.0.0"; 
int intPort = 12345; 

    public static bool PingHost(string strIP , int intPort) 
    { 
     bool blProxy= false; 
     try 
     { 
      TcpClient client = new TcpClient(strIP ,intPort); 

      blProxy = true; 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show("Error pinging host:'" + strIP + ":" + intPort .ToString() + "'"); 
      return false; 
     } 
     return blProxy; 
    } 

    public void Proxy() 
    { 
     bool tt = PingHost(strIP ,intPort); 
     if(tt == true) 
     { 
      MessageBox.Show("tt True"); 
     } 
     else 
     { 
      MessageBox.Show("tt False"); 
     } 
관련 문제