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 相关文章推荐
Windows下用py2exe将Python程序打包成exe程序的教程
Apr 08 Python
Python入门_浅谈数据结构的4种基本类型
May 16 Python
matplotlib调整子图间距,调整整体空白的方法
Aug 03 Python
使用Python实现画一个中国地图
Nov 23 Python
在python中利用try..except来代替if..else的用法
Dec 19 Python
200行python代码实现贪吃蛇游戏
Apr 24 Python
Python基于进程池实现多进程过程解析
Apr 30 Python
Python常用库Numpy进行矩阵运算详解
Jul 21 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
Oct 20 Python
详解python第三方库的安装、PyInstaller库、random库
Mar 03 Python
Python 线程池模块之多线程操作代码
May 20 Python
python中24小时制转换为12小时制的方法
Jun 18 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
星际中一些鲜为人知的详细资料
2020/03/04 星际争霸
PHP开发框架kohana3 自定义路由设置示例
2014/07/14 PHP
PHP命名空间(namespace)的使用基础及示例
2014/08/18 PHP
PHP移动文件指针ftell()、fseek()、rewind()函数总结
2014/11/18 PHP
微信公众平台消息接口校验与消息接口响应实例
2014/12/23 PHP
php微信开发之自定义菜单实现
2016/11/18 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
2017/07/19 PHP
PHP使用PDO访问oracle数据库的步骤详解
2017/09/29 PHP
基于jQuery的前端数据通用验证库
2011/08/08 Javascript
js使下拉列表框可编辑不止是选择
2013/12/12 Javascript
jquery实现类似淘宝星星评分功能实例
2014/09/12 Javascript
JS实现进入页面时渐变背景色的方法
2015/02/25 Javascript
整理Javascript函数学习笔记
2015/12/01 Javascript
微信扫码支付零云插件版实例详解
2017/04/26 Javascript
使用vue的v-for生成table并给table加上序号的实例代码
2017/10/27 Javascript
Node.js 利用cheerio制作简单的网页爬虫示例
2018/03/01 Javascript
解决Vue 项目打包后favicon无法正常显示的问题
2018/09/01 Javascript
从理论角度讨论JavaScript闭包
2019/04/03 Javascript
快速搭建Node.js(Express)用户注册、登录以及授权的方法
2019/05/09 Javascript
elementUI select组件value值注意事项详解
2019/05/29 Javascript
学习RxJS之JavaScript框架Cycle.js
2019/06/17 Javascript
element跨分页操作选择详解
2020/06/29 Javascript
详解vue父子组件状态同步的最佳方式
2020/09/10 Javascript
[01:05:00]2018国际邀请赛 表演赛 Pain vs OpenAI
2018/08/24 DOTA
Python去掉字符串中空格的方法
2014/03/11 Python
对Python3.6 IDLE常用快捷键介绍
2018/07/16 Python
Python实现的矩阵转置与矩阵相乘运算示例
2019/03/26 Python
numpy.where() 用法详解
2019/05/27 Python
Html5移动端获奖无缝滚动动画实现示例
2018/06/25 HTML / CSS
写出二分查找算法的两种实现
2013/05/13 面试题
办公自动化专业大学生职业规划书
2014/03/06 职场文书
装修施工安全责任书
2014/07/24 职场文书
2014年出纳工作总结与计划
2014/12/09 职场文书
一百条裙子读书笔记
2015/07/01 职场文书
2016秋季校长开学典礼致辞
2015/11/26 职场文书
nginx代理实现静态资源访问的示例代码
2022/07/07 Servers