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调用C语言开发的共享库方法实例
Mar 18 Python
Python极简代码实现杨辉三角示例代码
Nov 15 Python
Python数据结构与算法之图的广度优先与深度优先搜索算法示例
Dec 14 Python
Python matplotlib绘图可视化知识点整理(小结)
Mar 16 Python
python实现爬取图书封面
Jul 05 Python
Python 从相对路径下import的方法
Dec 04 Python
python Tkinter的图片刷新实例
Jun 14 Python
PIL图像处理模块paste方法简单使用详解
Jul 17 Python
Python小程序 控制鼠标循环点击代码实例
Oct 08 Python
Pytorch 实现数据集自定义读取
Jan 18 Python
Django中template for如何使用方法
Jan 31 Python
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
Jun 23 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
smarty循环嵌套用法示例分析
2016/07/19 PHP
Javascript之旅 对象的原型链之由来
2010/08/25 Javascript
javscript对象原型的一些看法
2010/09/19 Javascript
16个最流行的JavaScript框架[推荐]
2011/05/29 Javascript
Extjs gridpanel 出现横向滚动条问题的解决方法
2011/07/04 Javascript
javascript克隆对象深度介绍
2012/11/20 Javascript
jquery实现div阴影效果示例代码
2013/09/16 Javascript
JS去除空格和换行的正则表达式(推荐)
2016/06/14 Javascript
深入理解bootstrap框架之第二章整体架构
2016/10/09 Javascript
js仿手机页面文件下拉刷新效果
2016/10/14 Javascript
修改ligerui 默认确认按钮的方法
2016/12/27 Javascript
Ionic项目中Native Camera的使用方法
2017/06/07 Javascript
jQuery读取本地的json文件(实例讲解)
2017/10/31 jQuery
jQuery 同时获取多个标签的指定内容并储存为数组
2018/11/20 jQuery
vue-cli3搭建项目的详细步骤
2018/12/05 Javascript
JS左右无缝轮播功能完整实例
2019/05/16 Javascript
JavaScript动态添加数据到表单并提交的几种方式
2019/06/26 Javascript
vue监听用户输入和点击功能
2019/09/27 Javascript
js实现带积分弹球小游戏
2020/07/21 Javascript
微信小程序完美解决scroll-view高度自适应问题的方法
2020/08/08 Javascript
通过实例解析javascript Date对象属性及方法
2020/11/04 Javascript
Python实现批量压缩图片
2018/01/25 Python
python实现函数极小值
2019/07/10 Python
python读取大文件越来越慢的原因与解决
2019/08/08 Python
python Canny边缘检测算法的实现
2020/04/24 Python
final, finally, finalize的区别
2012/03/01 面试题
报表员工作失误检讨书范文
2014/09/19 职场文书
会议邀请函
2015/01/30 职场文书
客服专员岗位职责范本
2015/04/07 职场文书
2015年医生个人工作总结
2015/04/25 职场文书
2015年银行个人工作总结
2015/05/14 职场文书
海上钢琴师的观后感
2015/06/11 职场文书
灵魂歌王观后感
2015/06/17 职场文书
Redis 配置文件重要属性的具体使用
2021/05/20 Redis
python多次执行绘制条形图
2022/04/20 Python
css让页脚保持在底部位置的四种方案
2022/07/23 HTML / CSS