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的动态重新封装的教程
Apr 11 Python
Python调用命令行进度条的方法
May 05 Python
python中引用与复制用法实例分析
Jun 04 Python
mac安装pytorch及系统的numpy更新方法
Jul 26 Python
Python推导式简单示例【列表推导式、字典推导式与集合推导式】
Dec 04 Python
pandas中DataFrame修改index、columns名的方法示例
Aug 02 Python
pandas中遍历dataframe的每一个元素的实现
Oct 23 Python
python的pyecharts绘制各种图表详细(附代码)
Nov 11 Python
Python实现线性插值和三次样条插值的示例代码
Nov 13 Python
Python使用进程Process模块管理资源
Mar 05 Python
通过cmd进入python的步骤
Jun 16 Python
Python 数据可视化之Bokeh详解
Nov 02 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中的日期处理方法集锦
2007/01/02 PHP
php基于自定义函数记录log日志方法
2017/07/21 PHP
php实现算术验证码功能
2018/12/05 PHP
Cookie跨域问题解决方案代码示例
2020/11/24 PHP
动态加载外部javascript文件的函数代码分享
2011/07/28 Javascript
JS模拟自动点击的简单实例
2013/08/08 Javascript
教你用AngularJS框架一行JS代码实现控件验证效果
2014/06/23 Javascript
JavaScript中九种常用排序算法
2014/09/02 Javascript
JavaScript驾驭网页-获取网页元素
2016/03/24 Javascript
Angular中使用ui router实现系统权限控制及开发遇到问题
2016/09/23 Javascript
jQuery实现标签页效果实战(4)
2017/02/08 Javascript
vue如何从接口请求数据
2017/06/22 Javascript
详解vue数据渲染出现闪烁问题
2017/06/29 Javascript
JS写XSS cookie stealer来窃取密码的步骤详解
2017/11/20 Javascript
在 Vue.js中优雅地使用全局事件的方法
2019/02/01 Javascript
AntV F2和vue-cli构建移动端可视化视图过程详解
2019/10/08 Javascript
js判断一个对象是数组(函数)的方法实例
2019/12/19 Javascript
Vue状态模式实现窗口停靠功能(灵动、自由, 管理后台Admin界面)
2020/03/06 Javascript
webpack+vue-cil 中proxyTable配置接口地址代理操作
2020/07/18 Javascript
python开发之字符串string操作方法实例详解
2015/11/12 Python
Python对象转JSON字符串的方法
2016/04/27 Python
python生成每日报表数据(Excel)并邮件发送的实例
2019/02/03 Python
Python3.4解释器用法简单示例
2019/03/22 Python
python基础知识(一)变量与简单数据类型详解
2019/04/17 Python
python定位xpath 节点位置的方法
2019/08/27 Python
Python range、enumerate和zip函数用法详解
2019/09/11 Python
LocalStorage记住用户和密码功能
2017/07/24 HTML / CSS
canvas因为图片资源不在同一域名下而导致的跨域污染画布的解决办法
2019/01/18 HTML / CSS
七年级音乐教学反思
2014/01/26 职场文书
房地产财务管理制度
2014/02/02 职场文书
产品质量承诺书范文
2014/03/27 职场文书
大学新生军训方案
2014/05/03 职场文书
买卖合同协议书范本
2014/10/18 职场文书
涪陵白鹤梁导游词
2015/02/09 职场文书
2015年乡镇卫生院工作总结
2015/04/22 职场文书
使用JS前端技术实现静态图片局部流动效果
2022/08/05 Javascript