Python端口扫描简单程序


Posted in Python onNovember 10, 2016

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

获取本机的IP和端口号:

import socket 
 
def get_my_ip(): 
  try: 
    csock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
    csock.connect(('8.8.8.8', 80)) 
    (addr, port) = csock.getsockname() 
    csock.close() 
    return addr,port 
  except socket.error: 
    return "127.0.0.1" 
 
def int_to_ip(int_ip): 
  return socket.inet_ntoa(struct.pack('I', socket.htonl(int_ip))) 
 
 
def ip_to_int(ip): 
  return socket.ntohl(struct.unpack("I", socket.inet_aton(str(ip)))[0]) 
 
(ip,port)=get_my_ip() 
print "ip=%s port=%d" %(ip,port)

PortScan.py

#!/usr/bin/python 
# -*- coding: utf-8 -*- 
 
import optparse 
from socket import * 
from threading import * 
 
screenLock = Semaphore(value=1) 
 
def connScan(tgtHost, tgtPort): 
  try: 
    connSkt = socket(AF_INET, SOCK_STREAM) 
    connSkt.connect((tgtHost, tgtPort)) 
    connSkt.send('ViolentPython\r\n') 
    results = connSkt.recv(100) 
    screenLock.acquire() 
    print '[+] %d/tcp open' % tgtPort 
    print '[+] ' + str(results) 
  except: 
    screenLock.acquire() 
    print '[-] %d/tcp closed' % tgtPort 
  finally: 
  screenLock.release() 
  connSkt.close()  
 
def portScan(tgtHost, tgtPorts): 
  try: 
    tgtIP = gethostbyname(tgtHost) 
  except: 
    print "[-] Cannot resolve '%s': Unknown host" %tgtHost 
    return 
 
  try: 
    tgtName = gethostbyaddr(tgtIP) 
    print '\n[+] Scan Results for: ' + tgtName[0] 
  except: 
    print '\n[+] Scan Results for: ' + tgtIP 
 
  setdefaulttimeout(1) 
  for tgtPort in tgtPorts: 
    t = Thread(target=connScan,args=(tgtHost,int(tgtPort))) 
    t.start() 
 
def main(): 
  parser = optparse.OptionParser('usage %prog '+\ 
   '-H <target host> -p <target port>') 
  parser.add_option('-H', dest='tgtHost', type='string',\ 
   help='specify target host') 
  parser.add_option('-p', dest='tgtPort', type='string',\ 
   help='specify target port[s] separated by comma') 
 
  (options, args) = parser.parse_args() 
 
  tgtHost = options.tgtHost 
  tgtPorts = str(options.tgtPort).split(',') 
 
  if (tgtHost == None) | (tgtPorts[0] == None): 
  print parser.usage 
    exit(0) 
 
  portScan(tgtHost, tgtPorts) 
 
 
if __name__ == '__main__': 
  main()

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

Python 相关文章推荐
python使用marshal模块序列化实例
Sep 25 Python
python网络编程调用recv函数完整接收数据的三种方法
Mar 31 Python
Python中GIL的使用详解
Oct 03 Python
Python实现FTP弱口令扫描器的方法示例
Jan 31 Python
Python 利用切片从列表中取出一部分使用的方法
Feb 01 Python
PyQt5响应回车事件的方法
Jun 25 Python
Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析
Aug 15 Python
keras .h5转移动端的.tflite文件实现方式
May 25 Python
使用Python-OpenCV消除图像中孤立的小区域操作
Jul 05 Python
Python和Bash结合在一起的方法
Nov 13 Python
python与idea的集成的实现
Nov 20 Python
Anaconda安装pytorch及配置PyCharm 2021环境
Jun 04 Python
Python迭代和迭代器详解
Nov 10 #Python
python通过cookie模拟已登录状态的初步研究
Nov 09 #Python
Python内置函数OCT详解
Nov 09 #Python
windows10系统中安装python3.x+scrapy教程
Nov 08 #Python
简单谈谈python中的多进程
Nov 06 #Python
python自带的http模块详解
Nov 06 #Python
Python程序中设置HTTP代理
Nov 06 #Python
You might like
dedecms系统常用术语汇总
2007/04/03 PHP
在PHP中养成7个面向对象的好习惯
2010/07/17 PHP
写php分页时出现的Fatal error的解决方法
2011/04/18 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
2012/08/14 PHP
PHP处理excel cvs表格的方法实例介绍
2013/05/13 PHP
PHP实现数组array转换成xml的方法
2016/07/19 PHP
WordPress伪静态规则设置代码实例
2020/12/10 PHP
JQuery 绑定select标签的onchange事件,弹出选择的值,并实现跳转、传参
2011/01/06 Javascript
纯JAVASCRIPT图表动画插件Highcharts Examples
2011/04/16 Javascript
深入Javascript函数、递归与闭包(执行环境、变量对象与作用域链)使用详解
2013/05/08 Javascript
javascript如何使用bind指定接收者
2014/05/04 Javascript
javascript通过获取html标签属性class实现多选项卡的方法
2015/07/27 Javascript
JavaScript中函数表达式和函数声明及函数声明与函数表达式的不同
2015/11/15 Javascript
jQuery多文件异步上传带进度条实例代码
2016/08/16 Javascript
微信小程序自定义tab实现多层tab嵌套功能
2018/06/15 Javascript
基于Vue 2.0 监听文本框内容变化及ref的使用说明介绍
2018/08/24 Javascript
js之切换全屏和退出全屏实现代码实例
2019/09/09 Javascript
详解vue 组件
2020/06/11 Javascript
vue点击按钮实现简单页面的切换
2020/09/08 Javascript
js实现移动端图片滑块验证功能
2020/09/29 Javascript
动态创建类实例代码
2009/10/07 Python
Python实现正整数分解质因数操作示例
2018/08/01 Python
Python3.6中Twisted模块安装的问题与解决
2019/04/15 Python
Python 编程速成(推荐)
2019/04/15 Python
python3实现单目标粒子群算法
2019/11/14 Python
Python局部变量与全局变量区别原理解析
2020/07/14 Python
详解Python yaml模块
2020/09/23 Python
pandas实现导出数据的四种方式
2020/12/13 Python
CSS3弹性盒模型flex box快速入门心得(必看篇)
2016/05/24 HTML / CSS
小学教师师德反思
2014/02/03 职场文书
2014教师年度思想工作总结
2014/11/10 职场文书
2014司机年终工作总结
2014/12/05 职场文书
财务人员个人工作总结
2015/02/27 职场文书
党小组推荐意见
2015/06/02 职场文书
Win10 heic文件怎么打开 ? Win10 heic文件打开教程
2022/04/06 数码科技
vue3使用vuedraggable实现拖拽功能
2022/04/06 Vue.js