用Python实现网络端口扫描工具

用Python实现网络端口扫描工具

本文将介绍如何使用Python的socket模块来实现一个简单的端口扫描工具。该工具可以对指定主机的指定端口号范围进行扫描,从而判断哪些端口处于打开状态。

在介绍实现之前,我们先来看一下将要用到的socket方法。

sock = socket.socket (socket_family, socket_type)

创建一个socket对象

sock = socket.socket (socket.AF_INET, socket.SOCK_STREAM)

创建一个socket流,其中常用的枚举值包括:

AF_INET:IPv4

SOCK_STREAM:TCP

SOCK_DGRAM:UDP

gethostbyname("host")

将一个主机名转换成IP地址

sock.connect_ex((remoteServerIP, port))

连接到给定地址和端口

脚本的原理非常简单,就是遍历指定范围内的所有端口,并尝试建立连接。如果连接成功,就打印一条日志。

解析输入参数:

用Python实现网络端口扫描工具

获取主机IP:

用Python实现网络端口扫描工具

主循环:

用Python实现网络端口扫描工具

全部代码:

用Python实现网络端口扫描工具

运行结果:

用Python实现网络端口扫描工具

获取完整代码,请访问: https://github.com/code-talk/port-scanner

虽然这个脚本非常简单,但是只要大家有足够的想象力,就可以在此基础上做出更强大的功能。

好了,今天就介绍到这里,欢迎小伙伴们留言评论。


分享到:


相關文章: