想找一个程序,能够批量的处理一批ip的连接状态。
好比192.168.0.1到192.168.0.100
一起发送消息来判断是否有相应。
这个程序有现成的吗?
谢谢

解决方案 »

  1.   

    端口扫描程序 都可以吧 eg:XScan
      

  2.   

    写个批处理:tracert -d 192.168.13.1
    tracert -d 192.168.13.2
    ...
    tracert -d 192.168.13.254
    pause
      

  3.   

    A good network scan tool with open C source code: nmap.
      

  4.   

    BOOL CYt3_1Dlg::OnInitDialog() 

     
    m_list.InsertColumn(0,"IP地址",LVCFMT_LEFT,250); 
    m_list.InsertColumn(1,"端口号",LVCFMT_LEFT,184); m_startadd="127.0.0.1"; 
    m_overadd="127.0.0.1"; 
    m_startport=135; 
    m_overport=135; 
    UpdateData(0); 
    return TRUE;  
    } //获得192.168.22.23字符串中的23  比如IP是127.0.0.1  返回值为1  ,为了循环用 
    CString CYt3_1Dlg::SetIP(int n) 

    CString str; 
    int j=0,p=0; 
    do{ 
    j=m_startadd.Find(".",j+1); 
    p++; 
    }while(p!=3);     char string[10]; 
        itoa(n, string, 10); str=m_startadd.Left(j+1)+string; return str; 
    } //在循环中加上IP地址前N位  比如循环局域网中的23主机  应该加上192.168.20.  返回值为192.168.20.23 
    int CYt3_1Dlg::TranIP(CString str) 

    int ip,n=0,p=0; 
    do{ 
    n=str.Find(".",n+1); 
    p++; 
    }while(p!=3); 
    ip=atoi(str.Right(str.GetLength()-(n+1))); 
    return ip; 

    //按扫描按钮~ 
    void CYt3_1Dlg::OnButton1() 

    int beginIP=TranIP(m_startadd); 
    int endIP=TranIP(m_overadd); SOCKET s=socket(AF_INET,SOCK_STREAM,0); 
    count=0; 
    char Buf[20]; 
    m_add.sin_family=AF_INET; 
    for(int i=beginIP;i <=endIP;i++) 

    sprintf(Buf, SetIP(i)); m_add.sin_addr.S_un.S_addr= inet_addr(Buf); for(int j=m_startport;j <=m_overport;j++) 

    m_add.sin_port=htons(j); 
    if(!(connect(s,(LPSOCKADDR)&m_add,sizeof(m_add)) <0)) 

    AfxMessageBox("hhh"); 




    昨天写的   效率很底    我是新手   请多见谅      给你参考~  
      

  5.   

    如果设备ping不通的话 可能会占用很多时间吧
      

  6.   

    有没有同时ping多个设备的例子啊