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学习资料
Feb 08 Python
Python聚类算法之DBSACN实例分析
Nov 20 Python
Django项目实战之用户头像上传与访问的示例
Apr 21 Python
python实战教程之自动扫雷
Jul 13 Python
Sanic框架请求与响应实例分析
Jul 16 Python
浅谈python3.6的tkinter运行问题
Feb 22 Python
python实现扫雷小游戏
Apr 24 Python
pymysql模块使用简介与示例
Nov 17 Python
使用PyCharm官方中文语言包汉化PyCharm
Nov 18 Python
python实现三阶魔方还原的示例代码
Apr 28 Python
Python数据可视化之绘制柱状图和条形图
May 25 Python
Python借助with语句实现代码段只执行有限次
Mar 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
php中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
2012/01/16 PHP
php通过前序遍历树实现无需递归的无限极分类
2015/07/10 PHP
PHP实现的网站目录扫描索引工具
2016/09/08 PHP
javascript 出生日期和身份证判断大全
2008/11/13 Javascript
Prototype源码浅析 Enumerable部分之each方法
2012/01/16 Javascript
jquery.blockUI.js上传滚动等待效果实现思路及代码
2013/03/18 Javascript
JS根据生日月份和日期计算星座的简单实现方法
2016/11/24 Javascript
jquery中绑定事件的异同
2017/02/28 Javascript
使用ngrok+express解决本地环境中微信接口调试问题
2018/02/26 Javascript
详解如何用webpack4从零开始构建react开发环境
2019/01/27 Javascript
如何检查一个对象是否为空
2019/04/11 Javascript
深入探索VueJS Scoped CSS 实现原理
2019/09/23 Javascript
[43:03]LGD vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
一个超级简单的python web程序
2014/09/11 Python
python格式化字符串实例总结
2014/09/28 Python
python实现爬虫统计学校BBS男女比例之多线程爬虫(二)
2015/12/31 Python
Python Flask前后端Ajax交互的方法示例
2018/07/31 Python
python实现一个简单的udp通信的示例代码
2019/02/01 Python
在Python中使用Neo4j的方法
2019/03/14 Python
在pycharm下设置自己的个性模版方法
2019/07/15 Python
Django 迁移、操作数据库的方法
2019/08/02 Python
python+opencv实现移动侦测(帧差法)
2020/03/20 Python
django配置app中的静态文件步骤
2020/03/27 Python
jupyter note 实现将数据保存为word
2020/04/14 Python
浅谈python3打包与拆包在函数的应用详解
2020/05/02 Python
Python3爬虫中识别图形验证码的实例讲解
2020/07/30 Python
selenium设置浏览器为headless无头模式(Chrome和Firefox)
2021/01/08 Python
HTML5 语音搜索只需一句代码
2013/01/03 HTML / CSS
缓解脚、腿和背部疼痛:Z-CoiL鞋
2019/03/12 全球购物
铭立家具面试题
2012/12/06 面试题
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上
2013/07/06 面试题
专业毕业生个性的自我评价
2013/10/03 职场文书
毕业生求职简历的自我评价
2013/10/23 职场文书
亲子活动总结
2014/04/26 职场文书
农民工讨薪标语
2014/06/26 职场文书
学校综治宣传月活动总结
2014/07/02 职场文书