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 命令行参数sys.argv
Sep 06 Python
python格式化字符串实例总结
Sep 28 Python
Python中强大的命令行库click入门教程
Dec 26 Python
Tensorflow 查看变量的值方法
Jun 14 Python
解决Python运行文件出现out of memory框的问题
Dec 03 Python
pyqt5 键盘监听按下enter 就登陆的实例
Jun 25 Python
python输出决策树图形的例子
Aug 09 Python
python3.7将代码打包成exe程序并添加图标的方法
Oct 11 Python
python图的深度优先和广度优先算法实例分析
Oct 26 Python
Python实现隐马尔可夫模型的前向后向算法的示例代码
Dec 31 Python
Python多线程操作之互斥锁、递归锁、信号量、事件实例详解
Mar 24 Python
公认8个效率最高的爬虫框架
Jul 28 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 Session 变量的使用方法详解与实例代码
2013/09/11 PHP
详解WordPress中提醒安装插件以及隐藏插件的功能实现
2015/12/25 PHP
防止动态加载JavaScript引起的内存泄漏问题
2009/10/08 Javascript
基于jquery的弹出提示框始终处于窗口的居中位置(类似于alert弹出框的效果)
2011/09/28 Javascript
屏蔽网页右键复制和ctrl+c复制的js代码
2013/01/04 Javascript
如何用js控制frame的隐藏或显示的解决办法
2013/03/20 Javascript
JS控制表格实现一条光线流动分割行的方法
2015/03/09 Javascript
jQuery取得iframe中元素的常用方法详解
2016/01/14 Javascript
JavaScript修改作用域外变量的方法
2016/03/25 Javascript
ES6中的数组扩展方法
2016/08/26 Javascript
微信小程序图表插件(wx-charts)实例代码
2017/01/17 Javascript
详谈JavaScript的闭包及应用
2017/01/17 Javascript
Vue2.0结合webuploader实现文件分片上传功能
2018/03/09 Javascript
Webpack中雪碧图插件使用详解
2018/05/25 Javascript
前端axios下载excel文件(二进制)的处理方法
2018/07/31 Javascript
微信小程序视图容器(swiper)组件创建轮播图
2020/06/19 Javascript
Vue3.x源码调试的实现方法
2019/10/13 Javascript
python切换hosts文件代码示例
2013/12/31 Python
基于Python实现通过微信搜索功能查看谁把你删除了
2016/01/27 Python
Python探索之SocketServer详解
2017/10/28 Python
Python实现删除时保留特定文件夹和文件的示例
2018/04/27 Python
对dataframe进行列相加,行相加的实例
2018/06/08 Python
pytorch dataloader 取batch_size时候出现bug的解决方式
2020/02/20 Python
详解Pycharm第三方库的安装及使用方法
2020/12/29 Python
关于Python错误重试方法总结
2021/01/03 Python
HTML5实现视频弹幕功能
2019/08/09 HTML / CSS
美国在线咖啡、茶和餐厅供应商:LollicupStore
2018/05/04 全球购物
Myprotein瑞士官方网站:运动营养和健身网上商店
2019/09/25 全球购物
总经理秘书工作职责
2013/12/26 职场文书
市场专员岗位职责
2014/02/14 职场文书
经济贸易系毕业生求职信
2014/05/31 职场文书
硕士生找工作求职信
2014/07/05 职场文书
小学教师2014年度工作总结
2014/12/03 职场文书
离职信范本
2015/06/23 职场文书
2016党员三严三实心得体会
2016/01/15 职场文书
pytorch 实现变分自动编码器的操作
2021/05/24 Python