python基于socket函数实现端口扫描


Posted in Python onMay 28, 2020

本文实例为大家分享了python基于socket实现端口扫描的具体代码,供大家参考,具体内容如下

自学Python一段时间,写个端口扫描器练练手。有什么不足之处,请见谅
这是基于socket函数对端口进行端口扫描

所以,首先要导入socket模块

from socket import *

其次,通过正侧表达式来判断输入的是不是IP地址

compile_ip = re.compile(  
    '^(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$')

这里是核心代码

# -*- coding: utf-8 -*-
from socket import *
import re
from pip._vendor.distlib.compat import raw_input

def portscaner(host,port):         
  try:
    s = socket(AF_INET, SOCK_STREAM) # 实例化socket
    s.connect((host,port))    #对对应主机的对应端口发起连接
    print('主机%s的%s端口处于打开状态'%(host,port))
    s.close()   #关闭连接
    Export_Data(port)   #调用Export_Date
  except Exception as e:
    pass   #利用异常处理,对无法建立连接的端口pass掉


def ChecK_Host(host): #利用正侧表达式匹配host,判断是否符合IP地址的格式  并且输入不为空 
  compile_ip = re.compile(  
    '^(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$')
  if compile_ip.match(host) and len(host)!=0:  #host符合IP地址的格式且不为空值返回True,否则返回False
    return True
  else:
    return False
    

def Export_Data(port):   #导出数据
  port = str(port)     #将port转换为字符串类型
  date = open('Active_Port.txt', 'a') #在文件尾部写入数据,Active_Port.txt,若不存在就新建文件
  date.write(port+'\n')      #将port并行写入文件
  date.close()    #不要忘了关闭文件



def main(host):   #主模块
  if ChecK_Host(host):   #通过ChecK_Host()函数return 的布尔值进行判断输入的IP地址是否有误
    for port in range(1,65536):  #这里可以改成1024
      portscaner(host, port)
    print('\n')
    print('已将结果导出到 Active_Port.txt')
  else:
    print('IP地址无错误,请重新输入!!!')



if __name__ == '__main__':
  print('<' * 12 + '单线程端口扫描器' + '>' * 12)
  host = input('请输入有效的目标IPv4地址:')
  main(host)

raw_input('Press Enter to exit...')    #当脚本执行完后,等待键入Enter回车才退出程序(可有可无,主要是为了封装成exe可执行文件后,执行完程序dos界面不自动退出)

测试结果

可见目的主机的21端口处于开放状态

python基于socket函数实现端口扫描

扫描结束后,将存活的端口写入到Active_Port.txt

python基于socket函数实现端口扫描

这里没有用到多线程,通过循环,一个一个端口进行连接,扫描速度非常慢。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python用ConfigObj读写配置文件的实现代码
Mar 04 Python
Python创建文件和追加文件内容实例
Oct 21 Python
django开发之settings.py中变量的全局引用详解
Mar 29 Python
Python定时任务sched模块用法示例
Jul 16 Python
python+influxdb+shell编写区域网络状况表
Jul 27 Python
使用python 的matplotlib 画轨道实例
Jan 19 Python
wxPython修改文本框颜色过程解析
Feb 14 Python
15行Python代码实现免费发送手机短信推送消息功能
Feb 27 Python
最新2019Pycharm安装教程 亲测
Feb 28 Python
Python rabbitMQ如何实现生产消费者模式
Aug 24 Python
Python导入父文件夹中模块并读取当前文件夹内的资源
Nov 19 Python
python 模拟在天空中放风筝的示例代码
Apr 21 Python
Python中and和or如何使用
May 28 #Python
Python如何安装第三方模块
May 28 #Python
python使用多线程+socket实现端口扫描
May 28 #Python
Python如何实现定时器功能
May 28 #Python
python实点云分割k-means(sklearn)详解
May 28 #Python
Python脚本实现监听服务器的思路代码详解
May 28 #Python
python中Ansible模块的Playbook的具体使用
May 28 #Python
You might like
设置php页面编码的两种方法示例介绍
2014/03/03 PHP
Thinkphp中Create方法深入探究
2014/06/16 PHP
php实现的Timer页面运行时间监测类
2014/09/24 PHP
javascript Array数组对象的扩展函数代码
2010/05/22 Javascript
js 中 document.createEvent的用法
2010/08/29 Javascript
jquery中的mouseleave和mouseout的区别 模仿下拉框效果
2012/02/07 Javascript
利用jQuary实现文字浮动提示效果示例代码
2013/12/26 Javascript
js实现飞入星星特效代码
2014/10/17 Javascript
微信QQ的二维码登录原理js代码解析
2016/06/23 Javascript
AngularJS基础 ng-dblclick 指令用法
2016/08/01 Javascript
浅谈jQuery效果函数
2016/09/16 Javascript
webpack构建vue项目的详细教程(配置篇)
2017/07/17 Javascript
js封装成插件的步骤方法
2017/09/11 Javascript
LayUi中接口传数据成功,表格不显示数据的解决方法
2018/08/19 Javascript
Vue 通过自定义指令回顾v-内置指令(小结)
2018/09/03 Javascript
layui实现三级导航菜单
2019/07/26 Javascript
开发Node CLI构建微信小程序脚手架的示例
2020/03/27 Javascript
bootstrap-table后端分页功能完整实例
2020/06/01 Javascript
Vue实现圆环进度条的示例
2021/02/06 Vue.js
Python批量创建迅雷任务及创建多个文件
2016/02/13 Python
Python性能提升之延迟初始化
2016/12/04 Python
Python 列表(List) 的三种遍历方法实例 详解
2017/04/15 Python
Python实现Wordcloud生成词云图的示例
2020/03/30 Python
解决TensorFlow训练模型及保存数量限制的问题
2021/03/03 Python
关于HTML5 Placeholder新标签低版本浏览器下不兼容的问题分析及解决办法
2016/01/27 HTML / CSS
高清屏下canvas重置尺寸引发的问题的解决
2019/10/14 HTML / CSS
建筑公司文秘岗位职责
2013/11/29 职场文书
技术经理的自我评价范文
2013/12/03 职场文书
毕业生如何写自我鉴定
2014/03/15 职场文书
车辆工程专业求职信
2014/06/14 职场文书
社会实践活动总结范文
2014/07/03 职场文书
政工例会汇报材料
2014/08/26 职场文书
关于对大人不礼貌的检讨书
2014/09/29 职场文书
高中运动会前导词
2015/07/20 职场文书
会议室使用管理制度
2015/08/06 职场文书
2019暑假学生安全口号
2019/06/27 职场文书