已知:
1.由fport可以知道进程与本地端口的对应关系.
2.由netstat也可以知道本地端口和远程地址的对应关系。求解:
如何知道进程、远程地址对应关系呢?因为我觉得同一个端口可能会被2个以上进程占用。如何编程实现呢?

解决方案 »

  1.   

    利用sniffer可以知道通讯包的源端口和目的端口以及IP地址,通过进程端口关联工具可以找到和端口相连的进程。
    编程的方法前者可以使用winpcap,后者在网上也可以找到例子
      

  2.   

    to: kingzai()
    非常感谢。我只是不知道如何判断进程与目的端口的对应关系。因为我觉得同一个端口可能会被2个以上进程占用,这样就不知道到底哪个进程与目的端口对应,对吗,winpcap能解决吗?
      

  3.   

    同一个端口可能会被2个以上进程占用,这种情况比较少吧。比如你开两个QQ,一个端口是4000,另外一个就是4001,否则传递数据肯定会乱的。
    用sniffer可以得到IP头,TCP头,也即能够得到端口,IP的所有数据。
      

  4.   

    这个我昨天有和人讨论过,不同的IP,不同的进程可以使用相同的端口。比如A程序使用192.168.0.1:6000 B程序使用192.168.0.2:6000,要想唯一确定,需要IP,端口,进程一起来判断。
      

  5.   

    to:kingzai() 
    需要IP,端口,进程一起来判断
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~能否给点较详细的思路?
      

  6.   

    1.对与不同进程占用不同端口与远程通讯,可以很容易用进程端口关联工具知道进程与远程地址的对应关系。
    2.对于不同进程,使用不同IP,用相同端口与远程通讯,先得出是哪些进程与远端通讯,再通过sniffer分析源IP,区别出不同进程。
    具体还是自己找个sniffer工具抓包分析一下便知道了