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实现从ftp服务器下载文件的方法
Apr 30 Python
python获取一组汉字拼音首字母的方法
Jul 01 Python
Python对列表去重的多种方法(四种方法)
Dec 05 Python
python中返回矩阵的行列方法
Apr 04 Python
Python设计模式之装饰模式实例详解
Jan 21 Python
由面试题加深对Django的认识理解
Jul 19 Python
Python判断字符串是否xx开始或结尾的示例
Aug 08 Python
pandas factorize实现将字符串特征转化为数字特征
Dec 19 Python
详解Python设计模式之策略模式
Jun 15 Python
python批量修改交换机密码的示例
Sep 22 Python
关于python类SortedList详解
Sep 04 Python
Django数据库(SQlite)基本入门使用教程
Jul 07 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
ThinkPHP自动转义存储富文本编辑器内容导致读取出错的解决方法
2014/08/08 PHP
PHP转换文本框内容为HTML格式的方法
2016/07/20 PHP
php实现多站点共用session实现单点登录的方法详解
2019/09/18 PHP
JavaScript Base64编码和解码,实现URL参数传递。
2006/09/18 Javascript
Javascript----文件操作
2007/01/18 Javascript
js jquery做的图片连续滚动代码
2008/01/06 Javascript
javascript检查表单数据是否改变的方法
2013/07/30 Javascript
JS小功能(offsetLeft实现图片滚动效果)实例代码
2013/11/28 Javascript
基于jQuery实现点击弹出层实例代码
2016/01/01 Javascript
深入学习jQuery Validate表单验证
2016/01/18 Javascript
动态加载js文件简单示例
2016/04/21 Javascript
深入浅出 jQuery中的事件机制
2016/08/23 Javascript
AngularJS+Bootstrap实现多文件上传与管理
2016/11/08 Javascript
原生js实现可拖动的登录框效果
2017/01/21 Javascript
在bootstrap中实现轮播图实例代码
2017/06/11 Javascript
iframe高度自适应及隐藏滚动条的实例详解
2017/09/29 Javascript
vue.js动画中的js钩子函数的实现
2018/07/06 Javascript
vue+axios+promise实际开发用法详解
2018/10/15 Javascript
vue组件是如何解析及渲染的?
2021/01/13 Vue.js
Python中的字符串替换操作示例
2016/06/27 Python
详解python中asyncio模块
2018/03/03 Python
对python中类的继承与方法重写介绍
2019/01/20 Python
python图像和办公文档处理总结
2019/05/28 Python
python解压TAR文件至指定文件夹的实例
2019/06/10 Python
python五子棋游戏的设计与实现
2019/06/18 Python
python应用文件读取与登录注册功能
2019/09/23 Python
PyCharm 在Windows的有用快捷键详解
2020/04/07 Python
结构工程研究生求职信
2013/10/13 职场文书
成人毕业生自我鉴定
2013/10/18 职场文书
银行会计财务工作个人的自我评价
2013/10/29 职场文书
六年级学生评语
2014/04/22 职场文书
国庆节演讲稿范文2014
2014/09/19 职场文书
家庭贫困证明
2014/09/23 职场文书
创业计划书之酒吧
2019/12/02 职场文书
如何在CocosCreator里画个炫酷的雷达图
2021/04/16 Javascript
AJAX引擎原理以及XmlHttpRequest对象的axios、fetch区别详解
2022/04/09 Javascript