使用什么库来创建一个简单的端口扫描器?

dur*_*rje 3 c++ c++builder tcp-ip

我需要建议创建一个简单的端口扫描器,它需要检测某些特定设备是否从其 IP/MAC 地址连接到网络。

我在 Windows 7 上工作,最好使用 C++ Builder 2010,或者 java 或 Qt。

图书馆必须在公共领域或同等领域,因为我的软件是专有软件。

你会建议什么图书馆?你知道我可以从什么免费软件开始,或者有什么例子吗?

使用 Indy Sockets 或 Synapse TCP/IP 库怎么样?

Rem*_*eau 6

任何 TCP/IP 库都可以使用。Indy、ICS、Synapse,它们都可以与 C++Builder 配合使用。由于 Indy 附带 C++Builder,您可以从它开始,但您当然不限于它。

它们都在 Windows 内部使用 WinSock,因此您可以直接对 WinSock API 进行编程,而根本不使用任何库。所有你需要做的就是调用WSAStartup()一次在程序启动时,则调用socket()connect()为每个端口要检查。要检查多个端口,你可以把插座与非阻塞模式ioctlsocket(),然后使用select()WSAAsyncSelect()WSAAsyncEvent(),或CreateIoCompletionPort()/GetQueuedCompletionStatus()检测是否connect()成功/失败,或者你可以把插座成阻塞模式(其默认模式),并使用工人线程调用connect()并让它直接告诉您它是否成功/失败。