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 相关文章推荐
haskell实现多线程服务器实例代码
Nov 26 Python
python3使用tkinter实现ui界面简单实例
Jan 10 Python
python读取TXT每行,并存到LIST中的方法
Oct 26 Python
Python实现的大数据分析操作系统日志功能示例
Feb 11 Python
Python缓存技术实现过程详解
Sep 25 Python
Python中base64与xml取值结合问题
Dec 22 Python
python中的subprocess.Popen()使用详解
Dec 25 Python
django有外键关系的两张表如何相互查找
Feb 10 Python
Python递归实现打印多重列表代码
Feb 27 Python
python3中的logging记录日志实现过程及封装成类的操作
May 12 Python
Python 虚拟环境工作原理解析
Dec 24 Python
Django框架中视图的用法
Jun 10 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/05 PHP
PHP实现Redis单据锁以及防止并发重复写入
2018/04/10 PHP
PHP实现随机发放扑克牌
2020/04/21 PHP
Thinkphp 框架基础之源码获取、环境要求与目录结构分析
2020/04/27 PHP
动态加载js文件 document.createElement
2006/10/14 Javascript
jQuery对象和DOM对象相互转化
2009/04/24 Javascript
apycom出品的jQuery精美菜单破解方法
2011/02/18 Javascript
js动态设置div的值下例子
2013/10/29 Javascript
js中的cookie的读写操作示例详解
2014/04/17 Javascript
js实现可折叠展开的手风琴菜单效果
2015/09/07 Javascript
分享自己用JS做的扫雷小游戏
2016/02/17 Javascript
深入理解jquery中extend的实现
2016/12/22 Javascript
ionic实现下拉刷新载入数据功能
2017/05/11 Javascript
Mac下通过brew安装指定版本的nodejs教程
2018/05/17 NodeJs
layui自己添加图片按钮并点击跳转页面的例子
2019/09/14 Javascript
vue实现评论列表功能
2019/10/25 Javascript
微信小程序实现拼图小游戏
2020/10/22 Javascript
[46:58]完美世界DOTA2联赛PWL S3 Forest vs LBZS 第一场 12.17
2020/12/19 DOTA
关于你不想知道的所有Python3 unicode特性
2014/11/28 Python
在Python的Flask框架中使用模版的入门教程
2015/04/20 Python
Python之os操作方法(详解)
2017/06/15 Python
Python装饰器的执行过程实例分析
2018/06/04 Python
Python编写一个验证码图片数据标注GUI程序附源码
2019/12/09 Python
Python实现手机号自动判断男女性别(实例解析)
2019/12/22 Python
python 使用paramiko模块进行封装,远程操作linux主机的示例代码
2020/12/03 Python
PyCharm 解决找不到新打开项目的窗口问题
2021/01/15 Python
萨克斯第五大道英国:Saks Fifth Avenue英国
2019/04/01 全球购物
SQL面试题
2013/12/09 面试题
销售会计岗位职责
2014/03/15 职场文书
元旦晚会主持词
2014/03/24 职场文书
竞选班干部演讲稿
2014/04/24 职场文书
政法干警核心价值观心得体会
2014/09/11 职场文书
交通事故起诉书
2015/05/19 职场文书
详细谈谈MYSQL中的COLLATE是什么
2021/06/11 MySQL
如何解决php-fpm启动不了问题
2021/11/17 PHP
JS函数式编程实现XDM一
2022/06/16 Javascript