在xp和2003下察看端口对应的进程

 
关键词在xp和2003下察看端口对应                                          

 

在xp和2003下察看端口对应的进程
 
 -作者:shadow -编辑:shadow -来源:http://www.codehome.6600.org -时间:2004-10-27 20:20:13
 
/*========================================
在xp和2003下察看端口对应的进程
作者:shadow
Email:dreamshadow@mail.sdu.edu.cn
日期:2004/10/26
来源:http://www.codehome.6600.org
转载请注明出处!
==========================================*/
我们都知道fport.exe只能在2000下运行,那么有没有办法在xp和2003下察看端口对应的信息呢?答案是肯定的:)
首先让我们来熟悉几条命令和程序的用法吧:
netstat -ano    //这个命令是列出当前网络连接状况,并且列出端口对应程序的pid
tlist.exe       //在2000和xp安装盘的Support/Tools目录下,support.cab 压缩包自带的一个工具,可以查看指定pid对应的进程信息
让我们来看看运行效果吧
以下是netstat-ano在cmd中的运行结果:

Active Connections

  Proto  Local Address          Foreign Address        State           PID
  TCP    0.0.0.0:42             0.0.0.0:0              LISTENING       1524
  TCP    0.0.0.0:80             0.0.0.0:0              LISTENING       1616
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       660
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
  TCP    0.0.0.0:1025           0.0.0.0:0              LISTENING       496
  TCP    0.0.0.0:1026           0.0.0.0:0              LISTENING       984
  TCP    0.0.0.0:1031           0.0.0.0:0              LISTENING       1576
  TCP    0.0.0.0:1033           0.0.0.0:0              LISTENING       1524
  TCP    0.0.0.0:1433           0.0.0.0:0              LISTENING       1316
  TCP    0.0.0.0:1801           0.0.0.0:0              LISTENING       1576
  TCP    0.0.0.0:2103           0.0.0.0:0              LISTENING       1576
  TCP    0.0.0.0:2105           0.0.0.0:0              LISTENING       1576
  TCP    0.0.0.0:2107           0.0.0.0:0              LISTENING       1576
  TCP    0.0.0.0:3389           0.0.0.0:0              LISTENING       724
  TCP    0.0.0.0:4899           0.0.0.0:0              LISTENING       2860
  TCP    127.0.0.1:43958        0.0.0.0:0              LISTENING       1476
  TCP    202.194.4.218:21       0.0.0.0:0              LISTENING       1476
  TCP    202.194.4.218:80       202.194.4.218:3768     ESTABLISHED     4
  TCP    202.194.4.218:1433     211.233.12.64:8374     TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:8716     TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:9075     TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:9430     TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:9785     TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:10750    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:11091    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:11418    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:11739    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:12093    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:12452    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:15486    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:15851    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:16223    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:16580    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:16928    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:17283    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:17635    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:18005    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:18372    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:18746    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:19077    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:19453    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:19827    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:20199    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:20601    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:20951    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:21295    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:22194    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:22505    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:23517    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:23883    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:24245    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:24584    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:24920    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:25257    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:25676    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:26009    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:26345    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:26719    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:27724    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:28607    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:28950    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:29280    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:29582    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:29931    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:30299    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:30635    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:31003    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:31965    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:32317    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:33716    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:34076    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:34447    TIME_WAIT       0
  TCP    202.194.4.218:1433     211.233.12.64:34735    FIN_WAIT_1      1316
  TCP    202.194.4.218:3389     219.218.104.91:1065    ESTABLISHED     724
  TCP    202.194.4.218:3768     202.194.4.218:80       ESTABLISHED     3172
  TCP    202.194.4.218:3771     66.94.230.51:80        TIME_WAIT       0
  TCP    202.194.4.218:3772     66.94.230.37:80        TIME_WAIT       0
  UDP    0.0.0.0:42             *:*                                    1524
  UDP    0.0.0.0:445            *:*                                    4
  UDP    0.0.0.0:500            *:*                                    496
  UDP    0.0.0.0:1029           *:*                                    860
  UDP    0.0.0.0:1030           *:*                                    1576
  UDP    0.0.0.0:1032           *:*                                    1524
  UDP    0.0.0.0:1434           *:*                                    1316
  UDP    0.0.0.0:1645           *:*                                    876
  UDP    0.0.0.0:1646           *:*                                    876
  UDP    0.0.0.0:1812           *:*                                    876
  UDP    0.0.0.0:1813           *:*                                    876
  UDP    0.0.0.0:1837           *:*                                    860
  UDP    0.0.0.0:1886           *:*                                    860
  UDP    0.0.0.0:1887           *:*                                    860
  UDP    0.0.0.0:1888           *:*                                    860
  UDP    0.0.0.0:1889           *:*                                    860
  UDP    0.0.0.0:1890           *:*                                    860
  UDP    0.0.0.0:1891           *:*                                    860
  UDP    0.0.0.0:1892           *:*                                    860
  UDP    0.0.0.0:3527           *:*                                    1576
  UDP    0.0.0.0:4000           *:*                                    2840
  UDP    0.0.0.0:4500           *:*                                    496
  UDP    0.0.0.0:6000           *:*                                    2840
  UDP    0.0.0.0:6001           *:*                                    2840
  UDP    127.0.0.1:123          *:*                                    876
  UDP    127.0.0.1:1027         *:*                                    876
  UDP    127.0.0.1:1028         *:*                                    876
  UDP    127.0.0.1:1180         *:*                                    2496
  UDP    127.0.0.1:2920         *:*                                    2476
  UDP    127.0.0.1:3546         *:*                                    1904
  UDP    127.0.0.1:3798         *:*                                    3400
  UDP    127.0.0.1:3877         *:*                                    2312
  UDP    202.194.4.218:123      *:*                                    876

最后一列就是PID了
//---------------------------------------------------------------------------
以下是tlist.exe的运行结果:tlist.exe的用法是:tlist.exe pid
譬如:tlist.exe 1524 其结果如下:
1524 wins.exe       
   CWD:     C:/WINDOWS/system32/
   CmdLine: C:/WINDOWS/System32/wins.exe
   VirtualSize:    77372 KB   PeakVirtualSize:    78212 KB
   WorkingSetSize:  2604 KB   PeakWorkingSetSize:  6768 KB
   NumberOfThreads: 18
   1528 Win32StartAddr:0x0101249a LastErr:0x000003e5 State:Waiting  
   1544 Win32StartAddr:0x77d7570d LastErr:0x000003e5 State:Waiting  
   1828 Win32StartAddr:0x69a6ef20 LastErr:0x00000000 State:Waiting  
   1832 Win32StartAddr:0x69a6ef20 LastErr:0x00000000 State:Waiting  
   1836 Win32StartAddr:0x69a6ef20 LastErr:0x00000000 State:Waiting  
   1840 Win32StartAddr:0x69a6ef20 LastErr:0x00000000 State:Waiting  
   1972 Win32StartAddr:0x01003e1a LastErr:0x00000000 State:Waiting  
   1976 Win32StartAddr:0x01003fc7 LastErr:0x00000000 State:Waiting  
   1980 Win32StartAddr:0x01007b95 LastErr:0x00000000 State:Waiting  
   1984 Win32StartAddr:0x0101d872 LastErr:0x00000000 State:Waiting  
   1988 Win32StartAddr:0x01020137 LastErr:0x00000000 State:Waiting  
   1996 Win32StartAddr:0x01014d48 LastErr:0x00000000 State:Waiting  
   2000 Win32StartAddr:0x01013a15 LastErr:0x00000000 State:Waiting  
   2004 Win32StartAddr:0x01006a10 LastErr:0x00000000 State:Waiting  
   2008 Win32StartAddr:0x77c30840 LastErr:0x00000102 State:Waiting  
   2012 Win32StartAddr:0x77c30840 LastErr:0x00000000 State:Waiting  
   2508 Win32StartAddr:0x06001cb7 LastErr:0x00000000 State:Waiting  
   2272 Win32StartAddr:0x00000000 LastErr:0x000003f0 State:Waiting  
    5.2.3790.99 shp  0x01000000  wins.exe
     5.2.3790.0 shp  0x77f30000  ntdll.dll
     5.2.3790.0 shp  0x77e10000  kernel32.dll
     7.0.3790.0 shp  0x77b70000  msvcrt.dll
     5.2.3790.0 shp  0x77d60000  ADVAPI32.dll
   5.2.3790.137 shp  0x77c20000  RPCRT4.dll
     5.2.3790.0 shp  0x71ba0000  NETAPI32.dll
    5.2.3790.73 shp  0x77cd0000  USER32.dll
     5.2.3790.0 shp  0x77bd0000  GDI32.dll
     5.2.3790.0 shp  0x71b60000  WS2_32.dll
     5.2.3790.0 shp  0x71b50000  WS2HELP.dll
   5.2.3790.138 shp  0x77150000  ole32.dll
     5.2.3790.0 shp  0x5bb80000  VSSAPI.DLL
     3.5.2283.0 shp  0x769c0000  ATL.DLL
     5.2.3790.0 shp  0x770d0000  OLEAUT32.dll
     5.2.3790.0 shp  0x76180000  IMM32.DLL
     5.2.3790.0 shp  0x63090000  LPK.DLL
   1.421.3790.0 shp  0x72ee0000  USP10.dll
     5.2.3790.0 shp  0x71a80000  mswsock.dll
     5.2.3790.0 shp  0x71a40000  wshtcpip.dll
     5.2.3790.0 shp  0x76e30000  DNSAPI.dll
     5.2.3790.0 shp  0x76ed0000  winrnr.dll
     5.2.3790.0 shp  0x76e70000  WLDAP32.dll
     5.2.3790.0 shp  0x76ee0000  rasadhlp.dll
     5.2.3790.0 shp  0x699b0000  esent.dll
     5.2.3790.0 shp  0x5d000000  SAMLIB.dll
 2001.12.4720.130 s  0x76ef0000  CLBCatQ.DLL
 2001.12.4720.0 shp  0x76f70000  COMRes.dll
     5.2.3790.0 shp  0x77b60000  VERSION.dll
 2001.12.4720.130 s  0x76a10000  es.dll
     5.2.3790.0 shp  0x76eb0000  secur32.dll
      16.0.0.19 shp  0x06000000  ApiHook.dll
       16.2.0.6 shp  0x05000000  MemMon.dll
很显然CmdLine:后面的就是程序的路径
//----------------------------------------------------
到这里,聪明的你一定想到方法了,其实只要找到端口对应的进程的PID,再根据PID找到程序具体的路径就行了
我们所要实现的工作就是自动化而已
下面讲下大体思路:
首先我们执行以下两条命令:
netstat -ano|find "LISTENING">tcplisten.txt //获得TCP监听端口列表
netstat -ano|find "UDP">udplisten.txt       //获得UDP监听端口列表
//---------------------------------------------------------
以下是netstat -ano|find "LISTENING">tcplisten.txt执行结果,打开tcplisten.txt 可以看到:
  TCP    0.0.0.0:42             0.0.0.0:0              LISTENING       1524
  TCP    0.0.0.0:80             0.0.0.0:0              LISTENING       1616
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       660
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
  TCP    0.0.0.0:1025           0.0.0.0:0              LISTENING       496
  TCP    0.0.0.0:1026           0.0.0.0:0              LISTENING       984
  TCP    0.0.0.0:1031           0.0.0.0:0              LISTENING       1576
  TCP    0.0.0.0:1033           0.0.0.0:0              LISTENING       1524
  TCP    0.0.0.0:1433           0.0.0.0:0              LISTENING       1316
  TCP    0.0.0.0:1801           0.0.0.0:0              LISTENING       1576
  TCP    0.0.0.0:2103           0.0.0.0:0              LISTENING       1576
  TCP    0.0.0.0:2105           0.0.0.0:0              LISTENING       1576
  TCP    0.0.0.0:2107           0.0.0.0:0              LISTENING       1576
  TCP    0.0.0.0:3389           0.0.0.0:0              LISTENING       724
  TCP    0.0.0.0:4899           0.0.0.0:0              LISTENING       2860
  TCP    127.0.0.1:43958        0.0.0.0:0              LISTENING       1476
  TCP    202.194.4.218:21       0.0.0.0:0              LISTENING       1476
//--------------------------------------------------------
以下是netstat -ano|find "UDP">udplisten.txt 执行结果,打开udplisten.txt 可以看到:
  UDP    0.0.0.0:42             *:*                                    1524
  UDP    0.0.0.0:445            *:*                                    4
  UDP    0.0.0.0:500            *:*                                    496
  UDP    0.0.0.0:1029           *:*                                    860
  UDP    0.0.0.0:1030           *:*                                    1576
  UDP    0.0.0.0:1032           *:*                                    1524
  UDP    0.0.0.0:1434           *:*                                    1316
  UDP    0.0.0.0:1645           *:*                                    876
  UDP    0.0.0.0:1646           *:*                                    876
  UDP    0.0.0.0:1812           *:*                                    876
  UDP    0.0.0.0:1813           *:*                                    876
  UDP    0.0.0.0:1837           *:*                                    860
  UDP    0.0.0.0:1886           *:*                                    860
  UDP    0.0.0.0:1887           *:*                                    860
  UDP    0.0.0.0:1888           *:*                                    860
  UDP    0.0.0.0:1889           *:*                                    860
  UDP    0.0.0.0:1890           *:*                                    860
  UDP    0.0.0.0:1891           *:*                                    860
  UDP    0.0.0.0:1892           *:*                                    860
  UDP    0.0.0.0:3527           *:*                                    1576
  UDP    0.0.0.0:4000           *:*                                    2840
  UDP    0.0.0.0:4500           *:*                                    496
  UDP    0.0.0.0:6000           *:*                                    2840
  UDP    0.0.0.0:6001           *:*                                    2840
  UDP    127.0.0.1:123          *:*                                    876
  UDP    127.0.0.1:1027         *:*                                    876
  UDP    127.0.0.1:1028         *:*                                    876
  UDP    127.0.0.1:1180         *:*                                    2496
  UDP    127.0.0.1:2920         *:*                                    2476
  UDP    127.0.0.1:3546         *:*                                    1904
  UDP    127.0.0.1:3798         *:*                                    3400
  UDP    127.0.0.1:3877         *:*                                    2312
  UDP    202.194.4.218:123      *:*                                    876
//---------------------------------------------------------
我们只要对这两个文件中的信息处理下就能提取到端口和PID的对应表了
定义如下结构体吧:
//-------------------------------
typedef struct _PORTTOPROCESS{
        CString Port;
 CString Protocol;
 CString Pid;
 CString ProcName;
 CString ProcPath;
}PORTTOPROCESS;
//-------------------------------
PORTTOPROCESS PortToProcess[100] //声明一百个结构体应该够用了

第一步通过处理上述两个文件来实例化PortToProcess数组中的Port,Protocol,Pid项,并返回总的PortNum;
第二步通过进程快照获得pid对应的程序名实例化结构体中的ProcName项;
第三步先按
tlist.exe pid1|find "CmdLine:">>procinfo.txt
tlist.exe pid2|find "CmdLine:">>procinfo.txt
tlist.exe pid3|find "CmdLine:">>procinfo.txt
             .
             .
             .
             .
的格式写成一个bat文件,通过system()函数运行它,得到每个端口对应PID对应的进程信息
接着写个函数从procinfo.txt文件里把信息读出来实例化结构体中的ProcPath项;最后根据PortNum输出结果

原理就这么简单了,具体的看代码吧,附查看程序!在2003和xp下测试成功,vc6.0+2003的编译环境,代码中PcInfor类是个比较
全的类,可以获得系统的详细信息,只要把PcInfor.h和PcInfor.cpp拷贝到你的工程项目中就能用了

程序运行的时候会有CMD窗口弹出,这是因为调用了system()函数所致,在CMD窗口运行完之后程序会等待一段时间(大概20秒),是为了等待bat文件执行完,如果你的机子运行比较慢,可以把原代码的此处修改一下:
void PcInfor::GetPortToProcessInfo()
{
int i;
BornTcpListen();
BornUdpListen();
GetListenPort();
FindProcName();
FindProcPath();
for(i=0;i<20;i++) Sleep(1000);
GetProcPath();
DeleteTempFile();
WriteProcinfo();
}
循环次数加多点,在重新编译以下就行了!

如果发现bug或者你修改了更好的请给我一份,本人不胜感激:)

//shadow 2004/10/26
//email:dreamshadow@mail.sdu.edu.cn
//http:www.codehome.6600.org

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值