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 相关文章推荐
centos下更新Python版本的步骤
Feb 12 Python
python类继承用法实例分析
Oct 10 Python
python 远程统计文件代码分享
May 14 Python
使用Python的Bottle框架写一个简单的服务接口的示例
Aug 25 Python
简单易懂的python环境安装教程
Jul 13 Python
Numpy数组转置的两种实现方法
Apr 17 Python
PyQt5固定窗口大小的方法
Jun 18 Python
详解Python中第三方库Faker
Sep 25 Python
python 实现aes256加密
Nov 27 Python
Pytorch实现图像识别之数字识别(附详细注释)
May 11 Python
Python socket如何解析HTTP请求内容
Feb 12 Python
Python接口自动化之文件上传/下载接口详解
Apr 05 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
10条PHP编程习惯助你找工作
2008/09/29 PHP
PHP 强制下载文件代码
2010/10/24 PHP
Laravel框架搜索分页功能示例
2019/02/01 PHP
php依赖注入知识点详解
2019/09/23 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
2020/02/15 PHP
基于jquery的图片懒加载js
2010/06/30 Javascript
基于jquery实现的文字向上跑动类似跑马灯的效果
2014/06/17 Javascript
node.js下when.js 的异步编程实践
2014/12/03 Javascript
asp.net中oracle 存储过程(图文)
2015/08/12 Javascript
JavaScript数据结构与算法之栈与队列
2016/01/29 Javascript
Jquery和Js获得元素标签名称的方法总结
2016/10/08 Javascript
jQuery.Form上传文件操作
2017/02/05 Javascript
Angualrjs和bootstrap相结合实现数据表格table
2017/03/30 Javascript
javaScript动态添加Li元素的实例
2018/02/24 Javascript
Vue-路由导航菜单栏的高亮设置方法
2018/03/17 Javascript
Jquery和CSS实现选择框重置按钮功能
2018/11/08 jQuery
前端面试知识点目录一览
2019/04/15 Javascript
小程序识别身份证,银行卡,营业执照,驾照的实现
2019/11/05 Javascript
微信小程序开发中var that =this的用法详解
2020/01/18 Javascript
vue与iframe之间的信息交互的实现
2020/04/08 Javascript
解决vue项目router切换太慢问题
2020/07/19 Javascript
vue 组件之间事件触发($emit)与event Bus($on)的用法说明
2020/07/28 Javascript
antd vue 刷新保留当前页面路由,保留选中菜单,保留menu选中操作
2020/08/06 Javascript
python创建只读属性对象的方法(ReadOnlyObject)
2013/02/10 Python
Python实现爬取需要登录的网站完整示例
2017/08/19 Python
基于数据归一化以及Python实现方式
2018/07/11 Python
Django中的文件的上传的几种方式
2018/07/23 Python
女装和独特珠宝:Sundance Catalog
2018/09/19 全球购物
军训的自我鉴定
2013/12/10 职场文书
中国央视网签名寄语
2014/01/18 职场文书
答谢词范文
2015/01/05 职场文书
选对餐饮营销策略,营业额才会上涨
2019/08/27 职场文书
Python快速优雅的批量修改Word文档样式
2021/05/20 Python
英国数字版游戏销量周榜公布 《小缇娜的奇幻之地》登顶
2022/04/03 其他游戏
Python进程池与进程锁之语法学习
2022/04/11 Python
在ubuntu下安装go开发环境的全过程
2022/08/05 Golang