Python利用socket模块开发简单的端口扫描工具的实现


Posted in Python onJanuary 27, 2021

一、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模块开发简单的端口扫描工具的实现的文章就介绍到这了,更多相关Python socket端口扫描工具内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python的加密模块md5、sha、crypt使用实例
Sep 28 Python
python使用正则表达式分析网页中的图片并进行替换的方法
Mar 26 Python
用Python脚本来删除指定容量以上的文件的教程
May 04 Python
python微信公众号之关键词自动回复
Jun 15 Python
django 将model转换为字典的方法示例
Oct 16 Python
python判断一个数是否能被另一个整数整除的实例
Dec 12 Python
详解django2中关于时间处理策略
Mar 06 Python
Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)
Jun 28 Python
基于python判断目录或者文件代码实例
Nov 29 Python
pytorch构建多模型实例
Jan 15 Python
python3 kubernetes api的使用示例
Jan 12 Python
Django debug为True时,css加载失败的解决方案
Apr 24 Python
Python爬虫实现selenium处理iframe作用域问题
Jan 27 #Python
python利用appium实现手机APP自动化的示例
Jan 26 #Python
python 基于opencv去除图片阴影
Jan 26 #Python
python中用ggplot绘制画图实例讲解
Jan 26 #Python
python中altair可视化库实例用法
Jan 26 #Python
用Python制作音乐海报
Jan 26 #Python
python中pyqtgraph知识点总结
Jan 26 #Python
You might like
如何用C语言编写PHP扩展的详解
2013/06/13 PHP
php中并发读写文件冲突的解决方案
2013/10/25 PHP
Yii实现多按钮保存与提交的方法
2014/12/03 PHP
四个PHP非常实用的功能
2015/09/29 PHP
Javascript 日期处理之时区问题
2009/10/08 Javascript
用JavaScript仿PS里的羽化效果代码
2011/12/20 Javascript
node.js中的path.sep方法使用说明
2014/12/08 Javascript
node.js中使用socket.io制作命名空间
2014/12/15 Javascript
JS修改iframe页面背景颜色的方法
2015/04/01 Javascript
基于jQuery滑动杆实现购买日期选择效果
2015/09/15 Javascript
js实现接收表单的值并将值拼在表单action后面的方法
2015/11/23 Javascript
基于d3.js实现实时刷新的折线图
2016/08/03 Javascript
轻松掌握JavaScript状态模式
2016/09/07 Javascript
AngularJS  ng-table插件设置排序
2016/09/21 Javascript
详解React-Native解决键盘遮挡问题(Keyboard遮挡问题)
2017/07/13 Javascript
Redux 和 Mobx的选择问题:让你不再困惑!
2017/09/18 Javascript
在vue组件中使用axios的方法
2018/03/16 Javascript
vue实现中部导航栏布局功能
2019/07/30 Javascript
vue中 this.$set的用法详解
2019/09/06 Javascript
[11:42]2018DOTA2国际邀请赛寻真——OG卷土重来
2018/08/17 DOTA
Python数据分析之真实IP请求Pandas详解
2016/11/18 Python
Python正则表达式教程之三:贪婪/非贪婪特性
2017/03/02 Python
在python中利用最小二乘拟合二次抛物线函数的方法
2018/12/29 Python
快速排序的四种python实现(推荐)
2019/04/03 Python
Window10上Tensorflow的安装(CPU和GPU版本)
2020/12/15 Python
X/HTML5 和 XHTML2
2008/10/17 HTML / CSS
美国最大的存储市场:SpareFoot
2018/07/23 全球购物
DOUGLAS波兰:在线销售香水和化妆品
2020/07/05 全球购物
商务英语毕业生自荐信范文
2013/11/08 职场文书
宾馆仓管员岗位职责
2014/07/27 职场文书
升职感谢信
2015/01/22 职场文书
小爸爸观后感
2015/06/15 职场文书
辅导员学期工作总结
2015/08/14 职场文书
导游词之新疆-喀纳斯
2019/10/10 职场文书
JS新手入门数组处理的实用方法汇总
2021/04/07 Javascript
MongoDB数据库常用的10条操作命令
2021/06/18 MongoDB