求个端口扫描器 bat格式的
setlocal
cls
color A
title 6666端口扫描【服务器SYN1000线程】
echo ======================================================
echo 6666端口扫描【服务器SYN1000线程】
echo .
echo .
echo ======================================================
del result.txt
del s.txt
for /f "eol= tokens=1,2 delims= " %%i in (ip.txt) do s syn %%i %%j 6666 1000 /save
for /f "eol=- tokens=1 delims= " %%i in (result.txt) do echo %%is1.txt
for /f "eol=P tokens=1 delims= " %%i in (s1.txt) do echo %%is2.txt
for /f "eol=S tokens=1 delims= " %%i in (s2.txt) do echo %%i:6666s.txt
del s1.txt
del s2.txt
del Result.txt
本人珍藏自己下个S.exe配置文件是ip.txt端口自己改!
设计一个判断端口是否开启的扫描器程序的源代码怎么写?
for(int i=0;i6;i++)
{
for(int j=0;j10;j++)
{
theport[j].rmt_host=rmt_host;
theport[j].p=port[i*10+j];
theport[j].n=j;
Thread[j]=AfxBeginThread(pScan,(LPVOID)theport[j]);
//启动端口扫描线程
hThread[j]=Thread[j]-m_hThread;
Sleep(1);
}
WaitForMultipleObjects(10,hThread,TRUE,120000);
}
//扫描模块代码
SOCKET sockfd;
SOCKADDR_IN addr;
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd 0)
{
exit(0);
}
addr.sin_family = AF_INET;
addr.sin_port = htons(port);
addr.sin_addr.s_addr = inet_addr(rmt_host);
int r = connect(sockfd,(struct sockaddr *) addr, sizeof(addr));
//尝试连接端口进行检测
closesocket(sockfd);
//连接返回值处理
if (r!=-1)
{
::PostMessage(hWnd,WM_DISPLAY,port,0);
}
//显示端口扫描结果
LONG CScanDlg::OnDisplay(LONG lParam, UINT wParam)
{
LPSERVENT bar;
CString open;
int p=lParam;
bar = getservbyport(htons(p),"tcp");
open.Format("\t%d号端口(%s)开放!\r\n",p,(bar == NULL) ? "未知" :
bar-s_name);
m_HistoryEdit.AppendString (open);
return 0;
}
一段IP地址端口的扫描用C#怎么写代码
就你给的这点分,也想要问这样的问题....
这样的问题,得要给很多分的....
---------------
我也没有现成的代码,我给你说一下思路吧。
首先用线程实现。跟据你的任务数量。为每个线程分配任务(每个线程扫描多少个IP)。写一个公共的 *** 。这个 *** 里面就是你扫描的实现代码。至于你想扫描什么就写什么的代码。比如说你要PING远程就可以用PING类,测试远程计算机与你机机的连接。。
写完了,用线程调用这个 *** 就可以了。。
大概思路就是这样。
那里有端口扫描器的源代码程序
#include string.h
#include winsock.h
#include windows.h
#include iostream.h
#pragma comment (lib,"ws2_32.lib")
int main (int argc, char *argv[])
{
int iportFrom,iportTo;
int testsocket;
int iopenedport = 0;
struct sockaddr_in target_addr;
WSADATA wsaData;
WORD wVersionRequested=MAKEWORD(1,1);
if (argc = 3)
{
cout "使用格式 : " argv[0] " 主机IP地址 开始端口号 结束端口号\n" endl;
exit(1);
}
if (atoi (argv[2]) atoi (argv[3]))
{
cout "错误!开始端口号必须小于结束端口号" endl;
exit(1);
}
else
{
if (WSAStartup (wVersionRequested , wsaData) )
{
cout "连接socket库失败,请检查版本号是否为1.1\n" endl;
exit(1);
}
iportFrom=atoi (argv[2]);
iportTo=atoi (argv[3]);
for (int i=iportFrom; i = iportTo; i++)
{
cout "正在建立socket................................" endl;
if ((testsocket=socket (AF_INET,SOCK_STREAM,0) ) == INVALID_SOCKET)
{
cout "Socket建立失败!" endl;
exit(0);
}
target_addr.sin_family = AF_INET;
target_addr.sin_port = htons(i);
target_addr.sin_addr.s_addr = inet_addr (argv[1]);
cout "正在扫描端口:" i endl;
if (connect (testsocket, (struct sockaddr *) target_addr, sizeof(struct sockaddr)) == SOCKET_ERROR)
cout "端口" i "关闭!" endl;
else
{
iopenedport++;
cout "端口" i "开放\n" endl;
}
}
cout "目标主机" argv[1] "从" iportFrom "--" iportTo "共有" iopenedport "个端口开放" endl;
closesocket (testsocket);
WSACleanup();
}
return 0;
}
vc6.0 下 编译
这个端口扫描的代码到底哪里有错
因该是缺少头文件就是*.h文件,可能这段代码要用到一些第三方的*.h文件。
我不太懂C语言,我想因该是这样的。
如果你想学编程,建议你还是学VB.Net比较好。C语言有点过时了,除非你能学的很好。
Java也是非常好的选择
如何扫描手游端口
采用单线程。市场调查可知采用单线程扫描手游端口,手机游戏是指运行于手机上的游戏软件,简称“手游”。 用来编写手机最多的程序是Java语言。其次是C语言。
0条大神的评论