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实现堆栈与队列的方法
Jan 15 Python
用Python的Django框架完成视频处理任务的教程
Apr 02 Python
Python爬虫框架scrapy实现的文件下载功能示例
Aug 04 Python
在python中pandas读文件,有中文字符的方法
Dec 12 Python
Django web框架使用url path name详解
Apr 29 Python
OpenCV-Python 摄像头实时检测人脸代码实例
Apr 30 Python
Python异步操作MySQL示例【使用aiomysql】
May 16 Python
Python二进制文件读取并转换为浮点数详解
Jun 25 Python
python计算波峰波谷值的方法(极值点)
Feb 18 Python
解决python运行启动报错问题
Jun 01 Python
python连接mysql有哪些方法
Jun 24 Python
python读取mat文件生成h5文件的实现
Jul 15 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
phpMyAdmin 安装配置方法和问题解决
2009/06/08 PHP
PHP的可变变量名的使用方法分享
2012/02/05 PHP
php实现的一个很好用HTML解析器类可用于采集数据
2013/09/23 PHP
[原创]CI(CodeIgniter)简单统计访问人数实现方法
2016/01/19 PHP
Yii2 hasOne(), hasMany() 实现三表关联的方法(两种)
2017/02/15 PHP
Prototype最新版(1.5 rc2)使用指南(1)
2007/01/10 Javascript
自动完成JS类(纯JS, Ajax模式)
2009/03/12 Javascript
jquery validation验证身份证号,护照,电话号码,email(实例代码)
2013/11/06 Javascript
request请求获取参数的实现方法(post和get两种方式)
2016/09/27 Javascript
深入理解Angularjs向指令传递数据双向绑定机制
2016/12/31 Javascript
JavaScript定时器制作弹窗小广告
2017/02/05 Javascript
JavaScript组件开发之输入框加候选框
2017/03/10 Javascript
详解Angular2 之 结构型指令
2017/06/21 Javascript
关于javascript sort()排序你可能忽略的一点理解
2017/07/18 Javascript
es6+angular1.X+webpack 实现按路由功能打包项目的示例
2017/08/16 Javascript
vue中Element-ui 输入银行账号每四位加一个空格的实现代码
2018/09/14 Javascript
如何安装控制器JavaScript生成插件详解
2018/10/21 Javascript
详解50行代码,Node爬虫练手项目
2019/04/22 Javascript
VUE中使用HTTP库Axios方法详解
2020/02/05 Javascript
详解Python中的序列化与反序列化的使用
2015/06/30 Python
Python 使用SMTP发送邮件的代码小结
2016/09/21 Python
简单了解Django模板的使用
2017/12/20 Python
django启动uwsgi报错的解决方法
2018/04/08 Python
基于Python在MacOS上安装robotframework-ride
2018/12/28 Python
python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
2020/02/26 Python
python 自定义异常和主动抛出异常(raise)的操作
2020/12/11 Python
css3实现图片遮罩效果鼠标hover以后出现文字
2013/11/05 HTML / CSS
HTML5 Convas APIs方法详解
2015/04/24 HTML / CSS
施惠特软件测试面试题以及笔试题
2015/05/13 面试题
土木工程建筑专业毕业生求职信
2013/10/21 职场文书
公关关系专员的自我评价分享
2013/11/20 职场文书
求职信的七个关键技巧
2014/02/05 职场文书
出租车拒载检讨书
2015/01/28 职场文书
2019年销售部季度工作计划3篇
2019/10/09 职场文书
关于mysql中时间日期类型和字符串类型的选择
2021/11/27 MySQL
oracle删除超过N天数据脚本的方法
2022/02/28 Oracle