如何在 OS X 的网络工具中使用端口扫描器
Mac OS X 自带了端口扫描的工具包,只要一个 Network Utility App 就集成了很多特性,这就意味着你不需要使用令人乏味的CML (原话,俺只是翻译哈) 命令行,或者安装更高级的扫描工具 例如 nmap (当然,这个绝对很NB) 去快速扫描一个指定的域或者给定的IP地址,取而代之的是友好的GUI图形界面,尽管如此作为一款相当高级的工具,他事实上非常易于使用。
求:网络端口扫描器的算法
闪电1.0 是一个多线程的端口扫描工具,用于进行狂速端口扫描。它具有极快的速度 和方便友好的操作界面,能快速地对大网段范围进行 Connect方式端口扫描。同时具有获取端口标识的功能,可以用来快速地获取端口标识(Banner),能对80端口标识进行特别处理,能方便地获取Web Server类型。当扫描到木马程序端口时,可以提示常见木马。 主要功能如下 ( 1) 发现因特网上的一个网络或者一台主机。 (2) 一旦发现一台主机,就能扫描到开放端口号和提供的服务, 能对常见木马端口返回标识。 (3)可以进行域名正向解析和反向解析。 (4)可以获取局域网在线主机的MAC地址和主机名。 (5)提供了基于窗口Ping功能和局域网信使服务。 (6)可以获取本机网络配制相关信息,如本机IP, 子网掩码,MAC地址,网卡类型和网关IP和DNS的IP。
你可以到 去下载
那里有端口扫描器的源代码程序
#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 下 编译
0条大神的评论