Python利用socket模块开发简单的端口扫描工具的实现
更新时间:2021年01月27日 09:39:30 作者:Master先生
这篇文章主要介绍了Python利用socket模块开发简单的端口扫描工具的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
一、socket
1.简介
Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。
socket的工作流程
- socket 采用C/S 模式,分为服务端和客户端
- 服务端数据处理流程
- 创建socket -> 绑定到地址和端口 -> 等待连接 -> 开始通信-> 关闭连接
- 客户端数据处理流程
- 创建socket -> 等待连接 -> 开始通信-> 关闭连接
- 客户端没有绑定地址和端口,是由于客户端进程采用的是随机端口,当客户端要去连接目标时,会由系统自定分配一个端口号和自身ip地址去组合
2.利用方法
函数 | 描述 |
---|---|
s.settimeout(timeout) | 设置套接字操作的超时期,timeout是一个浮点数,单位是秒。值为None表示没有超时期。一般,超时期应该在刚创建套接字时设置,因为它们可能用于连接的操作(如connect()) |
s.connect() | 主动初始化TCP服务器连接,。一般address的格式为元组(hostname,port),如果连接出错,返回socket.error错误。 |
二、代码
1.源代码
#!/user/bin/ # -*- coding:UTF-8 -*- # Author:Master_sir # Version:python2.7 import socket,sys dk = [] for i in range(0,65536): dk.append(i) ports = dk def IsOpen(ip,port): try: s = socket.socket() s.settimeout(1) s.connect((ip,port)) return True except: return False pass def PortScan(ip): for p in ports: if IsOpen(ip,p): sys.stderr.write('%s:%s is open\n' % (ip,p)) PortScan('xxx.xxx.xxx.xxx') #要扫描的ip
2.执行实例
到此这篇关于Python利用socket模块开发简单的端口扫描工具的实现的文章就介绍到这了,更多相关Python socket端口扫描工具内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Flask + MySQL如何实现用户注册,登录和登出的项目实践
本文主要介绍了Flask + MySQL 如何实现用户注册,登录和登出的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-06-06Python使用pyinstaller打包含有gettext locales语言环境的项目(推荐)
最近在用 pyhton 做一个图片处理的小工具,顺便接触了gettext,用来实现本地化化中英文转换,本文通过一个项目给大家详细介绍下,感兴趣的朋友跟随小编一起看看吧2022-01-01python中pandas.DataFrame排除特定行方法示例
这篇文章主要给大家介绍了关于python中pandas.DataFrame排除特定行的方法,文中给出了详细的示例代码,相信对大家的理解和学习具有一定的参考价值,需要的朋友们下面来一起看看吧。2017-03-03
最新评论