images/blog-posts

网络篇・端口扫描

返回教程主页

上篇 网络篇・UDP通信

维基百科: 端口扫描工具(Port Scanner)指用于探测服务器或主机开放端口情况的工具。常被计算机管理员用于确认安全策略,同时被攻击者用于识别目标主机上的可运作的网络服务。端口扫描定义是客户端向一定范围的服务器端口发送对应请求,以此确认可使用的端口。虽然其本身并不是恶意的网络活动,但也是网络攻击者探测目标主机服务,以利用该服务的已知漏洞的重要手段。端口扫描的主要用途仍然只是确认远程机器某个服务的可用性。

TCP连接测试

在实现TCP通讯的时候,我们知道可以在客户端socket中输入主机名和端口号码来连接服务器。同样的,我们也可以使用这种方法来尝试连接一定范围的服务器端口:

from socket import socket, AF_INET, SOCK_STREAM

ports = range(10, 10000)
for port in ports:
    s = socket(AF_INET, SOCK_STREAM)
    s.settimeout(10)
    if not s.connect_ex(('localhost', port)):
        print(f'Opened Port: {port}')

我们扫描10到10000「不包含10000」的端口,使用s.connect_ex进行连接,如果连接成功则返回0。通过if not进行判别并输出主机localhost开放的端口,其中主机名称localhost可以替换成其他主机的名称或者IP地址。

下篇 网络篇・并发端口扫描

SUBSCRIBE


🔒 No spam. Unsubscribe any time.

About kk

kk

Vincenzo Antedoro is an engineer who helps those who want to invest in renewables. For the rest he enjoys teaching with the method of learning by doing..

» More about kk