Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lifenetwork

Verificando se uma porta esta aberta ou fechada

Recommended Posts

vc pode usar um componente para isso, tem vários alguns free outros pagos.

 

ASPPing

DesPing

DSPing Pro

DynuDNS

kutil

NETDLL

w3 Utils

 

Ou usar WScript.Shell

<% Response.Buffer = true %> 
<% 
    url = "www.site.com" 
 
    Set objWShell = CreateObject("WScript.Shell") 
    Set objCmd = objWShell.Exec("ping " & url) 
    strPResult = objCmd.StdOut.Readall() 
    set objCmd = nothing: Set objWShell = nothing 
 
    strStatus = "offline" 
    if InStr(strPResult,"TTL=")>0 then strStatus = "online" 
 
    response.write url & " is " & strStatus 
    response.write ".<br>" & replace(strPResult,vbCrLf,"<br>") 
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

legal...

 

 

e você quer fazer isso na maq. cliente

 

geralmente esta porta é service jibe-eb - Jibe EdgeBurst. Muita usada em DVR. Para isso terá que usar um Network tool. O que geralmente faço, é... vc ter um programa que rode em linha de comando, tipo um exe, e emular ele dentro do ASP, ou seja, fazendo o ASP rodar seu .exe e exibir o resultado na tela.

 

Já em .Net pode-se usar assim:

StartPort = Convert.ToInt32(numStart.Text);
EndPort = Convert.ToInt32(numEnd.Text);
ipAdres = txtIP.Text;
Thread[] pool = new Thread[(EndPort - StartPort) + 1];
int i = 0;

DateTime start = DateTime.Now;
// Loop through the ports between start port and end port
for (int CurrPort = StartPort; CurrPort <= EndPort; CurrPort++)
{
    Thread th = 
         new Thread(new System.Threading.ParameterizedThreadStart(portAc));
    //NOTE: better to leave to system.
    // th.Priority = ThreadPriority.AboveNormal;
    th.Start(CurrPort);
    pool[i] = th;
    i++;
}
#region thread pool
int k = --i;
int retryCount = 0;
for (; i >= 0; i--)
{
    if (pool[i].IsAlive)
    {
        i = k;
        retryCount++;
        continue;
    }
    if (retryCount == 1000)
    {
        break;
    }
}
#endregion

#region httpfinger
if (http)
{
    // Create a request for the URL.         
    WebRequest request = WebRequest.Create("http://" + txtIP.Text);
    // If required by the server, set the credentials.
    request.Credentials = CredentialCache.DefaultCredentials;
    // Get the response.
    try{
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();

        string serverType = response.Headers["server"];
        if (serverType.Contains("IIS"))
        {
            lblServer.Text = "Windows System ";
            if (serverType.Contains("5."))
            {
                lblServer.Text += "XP/2000";
            }
            if (serverType.Contains("6."))
            {
                lblServer.Text += "2003";
            }
        }
        if (serverType.ToLower().Contains("apache"))
        {
            lblServer.Text += "probably linux";
        }
        lblServer.Text += "
" + serverType;
    }
    catch(Exception Err){
        //sometime which returns 404 and it makes a problem.
    }
}
#endregion

DateTime end = DateTime.Now;
TimeSpan sonuc = end - start;
lblzaman.Text = sonuc.TotalSeconds + " total secs";
   
public void portAc(object portNoObj)
{
    int portNo = (int)portNoObj;
    TcpClient TcpScan = new TcpClient();
    try
    {
        // Try to connect
        TcpScan.Connect(ipAdres, portNo);

        if (!TcpScan.Connected) return;
        // If there's no exception, we can say the port is open
        log += "Port " + portNo + " open\r\n";

        //NOTE: We may include more finger tips to here
        switch (portNo)
        {
            case 80: http = true; break;
        }

        try
        {
            DataRow dr = dt.NewRow();
            dr[0] = "http://www.portsdb.org/bin/portsdb.cgi?portnumber=" + 
                     portNo + "&protocol=ANY&String=";
            dt.Rows.Add(dr);
        } // Ends Try
        catch (Exception Err)
        {
            throw Err;
        }
    }
    catch
    {
        // An exception occured, thus the port is probably closed
    }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.