像netstat 功能一样,在《Windows 网络编程技术》中有例程。

解决方案 »

  1.   

    编写自己的wsock32.dll替换原来的dll,把原来的dll换个地方保存起来
    用自己的dll连原来的dll。
    这样,你就可以监控发往wsock的所有数据(必要时可以改)——包括每个端口的通讯情况——这叫“外衣法”当然,还可以用“钩子法”,等等也可以用,wsock的某些函数,不过功能没“外衣法”多
      

  2.   

    它肯定是用SNMP做的。我这里有个历程,不过有些问题。[email protected]
      

  3.   

    怎么阳查得出是那个进程使用呢?ssh_zy(电池正极) 怎么样才能保证自己的DLL能够被其他程序正确使用呢?
      

  4.   

    你说地这个好象就是netstat -a啊。下面代码就是演绎你需要地东西地http://vchelp.net/source/netstatp.zip
      

  5.   

    to 111222(你行地!你一定要把少林功夫发扬光大..):
      你的程序很好用地!我会给你分地。就等下面这位兄弟了这是谁给我的信箱发的源码啊??请说出你的电子信箱,我好给分。>源码下载:
    >http://go.163.com/nethief1t2/NetSample.zip>一定要记得给我分呀!
      

  6.   

    千万注意,http://go.163.com/nethief1t2/NetSample.zip里的那个exe文件是个病毒。我已深受其害,万万不可打开。
      

  7.   

    源代码可用,但那个"网络例子.exe "绝对不能打开。
      

  8.   

    to znsoft:http://www.csdn.net/expert/topic/219/219723.shtm在这里
      

  9.   

    void TcpUdpLink::OnButton1() 
    {
    // TODO: Add your control notification handler code here
    char *state[13]={{"KNOW"},{"CLOSED"},{"LISTEN"},{"SYN_SENT"},{"SYN_RCVD"},
    {"ESTAB"},{"FIN_WAIT1"},{"FIN_WAIT2"},{"CLOSE_WAIT"},{"CLOSING"},
    {"LAST_ACK"},{"TIME_WAIT"},{"DELETE_TCB"}};
    CString str,strTemp;
    IN_ADDR localAddr;
    IN_ADDR remoteAddr;
    WORD dwLocalPort,dwRemotePort;
    PMIB_TCPTABLE pTcpTable;
    PMIB_UDPTABLE pUdpTable;
    HMODULE hModule;
    DWORD dwSize;
    int i;
    dwSize=0;
    typedef DWORD (CALLBACK* GETTCPTABLE)(PMIB_TCPTABLE,PDWORD,BOOL);
    typedef DWORD (CALLBACK* GETUDPTABLE)(PMIB_UDPTABLE,PDWORD,BOOL);
    GETTCPTABLE GetTcpTable;
    GETUDPTABLE GetUdpTable;
    hModule=LoadLibrary("IPhlpapi.DLL");
    if(hModule!=0){
    GetTcpTable=(GETTCPTABLE)GetProcAddress(hModule,"GetTcpTable");
    if(GetTcpTable!=NULL){
    (*GetTcpTable)(NULL,&dwSize,FALSE);
    if((pTcpTable=(PMIB_TCPTABLE)GlobalAlloc(GPTR,dwSize))==NULL)
    {
    AfxMessageBox("内存分配错误\n");
    return;
    }
    if((*GetTcpTable)(pTcpTable,&dwSize,TRUE)!=NO_ERROR)
    {
    AfxMessageBox("Get error");
    return;
    }
    MIB_TCPROW tab;
    for(i=0;i<pTcpTable->dwNumEntries;i++){
    tab=pTcpTable->table [i];
    localAddr.s_addr =tab.dwLocalAddr ;
    remoteAddr.s_addr =tab.dwRemoteAddr ;
    dwLocalPort=tab.dwLocalPort ;
    dwLocalPort=ntohs(dwLocalPort);
    dwRemotePort=tab.dwRemotePort ;
    dwRemotePort=ntohs(dwRemotePort);
    if(tab.dwRemoteAddr ==0)dwRemotePort=0;
    strTemp.Format ("TCP:%s:%d---",
    inet_ntoa(localAddr),dwLocalPort);
    str+=strTemp;
    strTemp.Format ("%s:%d  %s\n",
    inet_ntoa(remoteAddr),dwRemotePort,
    state[tab.dwState]);
    str+=strTemp;
    }
    }
    dwSize=0;
    GetUdpTable=(GETUDPTABLE)GetProcAddress(hModule,"GetUdpTable");
    if(GetUdpTable!=NULL){
    (*GetUdpTable)(NULL,&dwSize,0);
    if((pUdpTable=(PMIB_UDPTABLE)GlobalAlloc(GPTR,dwSize))==NULL)
    {
    AfxMessageBox("内存分配错误\n");
    return;
    }
    if((*GetUdpTable)(pUdpTable,&dwSize,TRUE)!=NO_ERROR){
    AfxMessageBox("Get UdpTable error");
    return;
    }
    MIB_UDPROW utab;
    for(i=0;i<pUdpTable->dwNumEntries;i++){
    utab=pUdpTable->table [i];
    dwLocalPort=utab.dwLocalPort ;
    dwLocalPort=ntohs(dwLocalPort);
    localAddr.s_addr=utab.dwLocalAddr ;
    strTemp.Format ("UDP: %s:%d\r\n",
    inet_ntoa(localAddr),dwLocalPort);
    str+=strTemp;
    }
    }
    FreeLibrary(hModule);
    }
    strTemp=m_Rich.GetText ();
    if(str!=strTemp)
    m_Rich.SetText (str);
    GlobalFree(pTcpTable);
    GlobalFree(pUdpTable);}
      

  10.   

    去www.sysinternals.com看看,里面有个tcpview就是解决这个问题的,有源代码
      

  11.   

    NETSTAT
    MICROSOFT WHITE PAGER 上有!
      

  12.   

    扫描自己的端口呗
    用java写的public class portscan {
        public static void main(String[] arg) {
            portscan scan = new portscan();
            scan.go(arg[0]);
        }
        
        public void go(String url) {
            Socket socket;
            for(int x = 0; x < 1024; x++) {
               try {
                  socket = new Socket(url,x);
                  System.out.println("port "+x+" ok");
                  socket = null;
               }
               catch(Exception e) {
                  System.out.print("port "+x+"\r");
               }
           }
        }
    }
      
      

  13.   

    请问iamshuke兄:
    你的IN_ADDR remoteAddr;
    PMIB_TCPTABLE pTcpTable;;
    MIB_TCPROW tab
    结构从什么地方来的MSDN上没有呀
      

  14.   

    Private Sub Timer_Timer(Index As Integer)
    Dim Tmp$
      Select Case WinSock(Index).State
          Case sckClosed
               Tmp$ = "关闭"
          Case sckOpen
               Tmp$ = "打开"
          Case sckListening
               Tmp$ = "侦听"
          Case sckConnectionPending
               Tmp$ = "连接挂起"
          Case sckResolvingHost
               Tmp$ = "识别主机"
          Case sckHostResolved
               Tmp$ = "已识别主机"
          Case sckConnecting
               Tmp$ = "正在连接"
          Case sckConnected
               Tmp$ = "正在通信中..........."
          Case sckClosing
              '-------------------------
               Tmp$ = "对方主动关闭连接"
          Case sckError
               Tmp$ = "测试网关(ISMG)未知错误,请稍后再试........"
       End Select
       'If Trim(Text1.Text) <> Tmp$ Then AddMsg Tmp$
       
    End Sub