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 相关文章推荐
可用于监控 mysql Master Slave 状态的python代码
Feb 10 Python
python基础教程之序列详解
Aug 29 Python
Python中用altzone()方法处理时区的教程
May 22 Python
Python中运算符&quot;==&quot;和&quot;is&quot;的详解
Oct 08 Python
用 Python 爬了爬自己的微信朋友(实例讲解)
Aug 25 Python
pandas值替换方法
Jul 10 Python
Python常见的pandas用法demo示例
Mar 16 Python
无需压缩软件,用python帮你操作压缩包
Aug 17 Python
使用Pytorch搭建模型的步骤
Nov 16 Python
python进行二次方程式计算的实例讲解
Dec 06 Python
详解Python GUI编程之PyQt5入门到实战
Dec 10 Python
详解解Django 多对多表关系的三种创建方式
Aug 23 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
一个取得文件扩展名的函数
2006/10/09 PHP
按上下级层次关系输出内容的PHP代码
2010/07/17 PHP
php分割合并两个字符串的函数实例
2015/06/19 PHP
PHP实现下载远程图片保存到本地的方法
2017/06/19 PHP
详解PHP swoole process的使用方法
2017/08/26 PHP
jQuery验证Checkbox是否选中的代码 推荐
2011/09/04 Javascript
使用JavaScript 实现各种跨域的方法
2013/05/08 Javascript
一个JavaScript递归实现反转数组字符串的实例
2014/10/14 Javascript
Yii2使用Bootbox插件实现自定义弹窗
2015/04/02 Javascript
javascript截取字符串小结
2015/04/28 Javascript
javascript实现uploadify上传格式以及个数限制
2015/11/23 Javascript
jQuery div拖拽用法实例
2016/01/14 Javascript
Bootstrap树形组件jqTree的简单封装
2016/01/25 Javascript
AngularJs Scope详解及示例代码
2016/09/01 Javascript
老生常谈Javascript中的原型和this指针
2016/10/09 Javascript
pc加载更多功能和移动端下拉刷新加载数据
2016/11/07 Javascript
微信小程序Server端环境配置详解(SSL, Nginx HTTPS,TLS 1.2 升级)
2017/01/12 Javascript
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
2017/04/02 jQuery
jquery dataTable 获取某行数据
2017/05/05 jQuery
深究AngularJS——ng-checked(回写:带真实案例代码)
2017/06/13 Javascript
详解Vuex中mapState的具体用法
2017/09/28 Javascript
微信小程序列表中item左滑删除功能
2018/11/07 Javascript
Express结合Webpack的全栈自动刷新
2019/05/23 Javascript
vue 导航内容设置选中状态样式的例子
2019/11/01 Javascript
[01:46]2020完美世界全国高校联赛秋季赛报名开启
2020/10/15 DOTA
在Python中处理字符串之isdigit()方法的使用
2015/05/18 Python
python 通过xml获取测试节点和属性的实例
2018/03/31 Python
Python Socket编程之多线程聊天室
2018/07/28 Python
pytorch 改变tensor尺寸的实现
2020/01/03 Python
css3 iphone玻璃透明气泡完美实现
2013/03/20 HTML / CSS
HTML5 Canvas渐进填充与透明实现图像的Mask效果
2013/07/11 HTML / CSS
Html5实现移动端、PC端 刮刮卡效果
2016/06/30 HTML / CSS
工程管理造价应届生求职信
2013/11/13 职场文书
优秀中职教师事迹材料
2014/08/26 职场文书
超市员工辞职信范文
2015/05/12 职场文书
浅谈Redis的几个过期策略
2021/05/27 Redis