我一直在用Rust编写端口扫描器,为了检测打开的端口,我所做的就是创建一个TcpStream并尝试连接到给定主机上的不同端口,看看它是否允许连接。
我遇到的问题是,当连接失败时,OS (Linux)返回三种代码之一:
101 - It is displayed if network is unreachable.
111 - It is displayed if connection is refused.
113 - It is displayed if there is no route to host.
我一直在寻找对每个错误的深入解释,以及它们的原因,但我只是一遍又一遍地找到相同的文本
最近,我在我的Ubuntu18.04服务器上做了一个端口扫描(使用www.ipfingerprints.com),发现了一些我没有打开的端口。以下是开放的港口:
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http
111/tcp filtered rpcbind
135/tcp filtered msrpc
136/tcp filtered profile
137/tcp filtered netbios-ns
138/tcp filtered netbios-dgm
我有一个客户机/服务器风格的应用程序,它使用WCF进行通信,这一切都很好。应用程序的一个功能是将文件从客户端计算机获取到服务器(中央控制)。
中央控制请求客户端上指定文件夹中的文件列表,并使用套接字打开端口,以便客户端连接和流每个文件。它对每个文件使用不同的端口号。
这在本地测试时很好,但是当部署到我们的客户环境时,我开始得到以下异常。
The requested address is not valid in its context
at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress