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 相关文章推荐
win系统下为Python3.5安装flask-mongoengine 库
Dec 20 Python
13个最常用的Python深度学习库介绍
Oct 28 Python
利用numpy实现一、二维数组的拼接简单代码示例
Dec 15 Python
python3使用scrapy生成csv文件代码示例
Dec 28 Python
Python图像处理之gif动态图的解析与合成操作详解
Dec 30 Python
在python中实现强制关闭线程的示例
Jan 22 Python
PyCharm搭建Spark开发环境实现第一个pyspark程序
Jun 13 Python
ubuntu 18.04 安装opencv3.4.5的教程(图解)
Nov 04 Python
Python利用matplotlib绘制约数个数统计图示例
Nov 26 Python
基于python的docx模块处理word和WPS的docx格式文件方式
Feb 13 Python
Pyqt助手安装PyQt5帮助文档过程图解
Nov 20 Python
python自动生成sql语句的脚本
Feb 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
一贴学会PHP 新手入门教程
2009/08/03 PHP
PHP header函数分析详解
2011/08/06 PHP
php数组相加 array(“a”)+array(“b”)结果还是array(“a”)
2012/09/19 PHP
PHP+AJAX 投票器功能
2017/11/11 PHP
laravel5表单唯一验证的实例代码
2019/09/30 PHP
PHP实现文件上传后台处理脚本
2020/03/04 PHP
PHP论坛实现积分系统的思路代码详解
2020/06/01 PHP
PHP的imageTtfText()函数深入详解
2021/03/03 PHP
JS嵌套函数调用上下文的问题解决
2014/03/26 Javascript
javascript 获取HTML DOM父、子、临近节点
2014/06/16 Javascript
nodejs批量修改文件编码格式
2015/01/22 NodeJs
jquery实现炫酷的叠加层自动切换特效
2015/02/01 Javascript
jquery实现简单的二级导航下拉菜单效果
2015/09/07 Javascript
vueJS简单的点击显示与隐藏的效果【实现代码】
2016/05/03 Javascript
JavaScript实现简易的天数计算器实例【附demo源码下载】
2017/01/18 Javascript
详解用vue.js和laravel实现微信授权登陆
2017/06/23 Javascript
JS设计模式之数据访问对象模式的实例讲解
2017/09/30 Javascript
js将当前时间格式化为 年-月-日 时:分:秒的实现代码
2018/01/20 Javascript
详解使用jest对vue项目进行单元测试
2018/09/07 Javascript
基于layui框架响应式布局的一些使用详解
2019/09/16 Javascript
浅谈vue中组件绑定事件时是否加.native
2019/11/09 Javascript
使用python Fabric动态修改远程机器hosts的方法
2018/10/26 Python
对python xlrd读取datetime类型数据的方法详解
2018/12/26 Python
详解Python中pandas的安装操作说明(傻瓜版)
2019/04/08 Python
windows、linux下打包Python3程序详细方法
2020/03/17 Python
python爬取招聘要求等信息实例
2020/11/20 Python
HTML5公共页面提取作为公用代码的方法
2020/06/30 HTML / CSS
匡威帆布鞋美国官网:Converse美国
2016/08/22 全球购物
英国排名第一的在线宠物用品商店:Monster Pet Supplies
2018/05/20 全球购物
广州某公司软件工程师面试题
2014/12/22 面试题
JVM是一个编译程序还是解释程序
2012/09/11 面试题
介绍一下Java中的static关键字
2012/05/12 面试题
党风廉政承诺书
2014/03/27 职场文书
大学生个人年度总结范文
2015/02/15 职场文书
Python手拉手教你爬取贝壳房源数据的实战教程
2021/05/21 Python
在Centos 8.0中安装Redis服务器的教程详解
2022/03/21 Redis