如何查看某一端口的监听记录?

nickowen 2011-09-07 03:01:11
想知道某个端口某个时刻的监听状态.
有办法没
...全文
487 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2011-09-08
  • 打赏
  • 举报
回复
char cmd[256];
int port=135;
sprintf(cmd,"echo %%date%% %%time%% >>%d.txt&netstat -na | find \"LISTENING\" | find /c \":%d \" >>%d.txt",port,port,port);
system(cmd);
//读文件135.txt的内容
nickowen 2011-09-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 luciferisnotsatan 的回复:]
引用 5 楼 nickowen 的回复:

windows 如果做?

windows一样有netstat命令的
[/Quote]

3Q.
可惜没有直接查的命令.要查以前的是没办法了,
希望这种异常可以再现
luciferisnotsatan 2011-09-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 nickowen 的回复:]

windows 如果做?
[/Quote]
windows一样有netstat命令的
nickowen 2011-09-08
  • 打赏
  • 举报
回复
windows 如果做?
yby4769250 2011-09-07
  • 打赏
  • 举报
回复
楼上的想法不错,netstat把端口信息重定向到文件中,再加上时间,之后,访问这个文件来查看某个端口某个时刻的状态
qq120848369 2011-09-07
  • 打赏
  • 举报
回复
用shell命令:netstat之类的
nickowen 2011-09-07
  • 打赏
  • 举报
回复
我的意思是.我要查机器的某个端口在某一时刻是监听还是没监听
如3300端口,
我想查看9点的时候,它是否被监听了
Damn_boy 2011-09-07
  • 打赏
  • 举报
回复

// Listener3389.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "iostream"
#include "fstream"
#include "winsock2.h"
#include "time.h"
using namespace std;
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )
int _tmain(int argc, _TCHAR* argv[])
{


WSAEVENT EventArray;
SOCKET ListenSocket;

WSADATA wsaData;
WSAStartup(MAKEWORD(2,2), &wsaData);

//-----------------------------------------
// Create a listening socket bound to a local
// IP address and the port specified
ListenSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);


sockaddr_in service;
service.sin_family = AF_INET;
service.sin_port = htons(23); //修改为想监听的端口号
service.sin_addr.s_addr = INADDR_ANY;

//-----------------------------------------
// Bind the listening socket to the local IP address
// and port number
if(!bind(ListenSocket, (SOCKADDR *) &service, sizeof(SOCKADDR)))
{
printf("Binded!!\n");;}

//-----------------------------------------
// Set the socket to listen for incoming
// connection requests
listen(ListenSocket, 5);
printf("Listening...\n");

//-----------------------------------------
// Create an event handle and setup an overlapped structure.
EventArray = WSACreateEvent();
WSAEventSelect( ListenSocket,EventArray, FD_ACCEPT);

time_t rawtime;
struct tm * timeinfo;
ofstream o_file;
SOCKADDR_IN tmp;
int tmplen=16;
unsigned long ip;


unsigned char num;


while(1)
{
WSAWaitForMultipleEvents(1, &EventArray, FALSE, WSA_INFINITE, FALSE);
o_file.open("tmp.txt", ios::app);

o_file <<"\nInComing Connection\nIP:";


closesocket(accept(ListenSocket,(SOCKADDR *)&tmp,&tmplen));
ip=tmp.sin_addr.S_un.S_addr;

while(ip)
{
num=ip;
int i=num;
o_file << i ;
if(ip>255)
o_file << ".";
ip>>=8;
}
o_file << " Port:"<<ntohs(tmp.sin_port);
time ( &rawtime );
timeinfo = localtime ( &rawtime );
o_file << " Time: "<<asctime (timeinfo) ;
WSAResetEvent(EventArray);
o_file.close();

}



}


监听记录如下


InComing Connection
IP:172.25.51.73 //远程ip地址
Port:3036 //远程端口号
Time: Wed Sep 07 15:08:18 2011 //记录时间


以前弄着玩的 不知道合不合你要求

64,636

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧