#!/usr/bin/env python

import socket

if __name__=='__main__':

port=3389

s=socket.socket()

for cnt in range(253,2,-1):

address='XXX.XXX.XXX.'+str(cnt) #XXX.XXX.XXX IP网段

try:

s.connect((address,port))

print address

except socket.error,e:

print 'Error OR Port Not Opened'

Python的代码简单明了,但是功能不简单,速度有些慢,主要还是单线程和网络的原因吧。改进一下可以当一个简陋的端口扫描器使用了,扫描指定网段、指定端口,多线程速度可能能好一点吧。

多线程实现前几天看了个讲使用Python扫描端口的教程,看了之后自己也写了个扫描端口的脚本。记录下来,方便自己以后回顾。

端口扫描端口效果图

python扫描器源代码

# -*- coding:utf8 -*-

#!/usr/bin/python

# Python: 2.7.8

# Platform: Windows

# Authro: wucl

# Program: 端口扫描

# History: 2015.6.1

import socket, time, thread

socket.setdefaulttimeout(3)

def socket_port(ip,port):

"""

输入IP和端口号,扫描判断端口是否开放

"""

try:

if port>=65535:

print u'端口扫描结束'

s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)

result=s.connect_ex((ip,port))

if result==0:

lock.acquire()

print ip,u':',port,u'端口开放'

lock.release()

s.close()

except:

print u'端口扫描异常'

def ip_scan(ip):

"""

输入IP,扫描IP的0-65534端口情况

"""

try:

print u'开始扫描 %s' % ip

start_time=time.time()

for i in range(0,65534):

thread.start_new_thread(socket_port,(ip,int(i)))

print u'扫描端口完成,总共用时 :%.2f' %(time.time()-start_time)

raw_input("Press Enter to Exit")

except:

print u'扫描ip出错'

if __name__=='__main__':

url=raw_input('Input the ip you want to scan:\n')

lock=thread.allocate_lock()

ip_scan(url)

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

python写端口扫描器_使用Python编写简单的端口扫描器的实例分享相关推荐

  1. 用python写shell脚本_应用python编写shell脚本

    今天同事叫我编写一个shell脚本.话说,虽然我受*nix的影响甚深,但是对于*nix里随处可见的sh脚本却是讨厌之极.为什么讨厌呢?首先是因为sh脚本那莫名其妙的语法,感觉就像随写随扔的程序,完全没 ...

  2. python写计算机模拟器_用 Python 写出了一个 Gameboy 模拟器

    点击上方"编程派",选择设为"设为星标" 优质文章,第一时间送达! 感觉用 Atari 游戏研究人工智能有点「不够接地气」?现在我们可以使用 Gameboy 模 ...

  3. python写机器人程序_用Python写的一个多线程机器人聊天程序

    本人是从事php开发的, 近来想通过php实现即时通讯(兼容windows).后来发现实现起来特别麻烦, 就想到python.听说这家伙在什么地方都能发挥作用.所以想用python来做通讯模块...所 ...

  4. python写一个类方法_重写python脚本,在脚本的每个类中注入一个方法 - python

    假设我有一个python模块foo.py,其中包含: class Foo(object): def __init__(self): pass 接下来,我想解析此脚本,并在每个类中注入一个方法,然后将其 ...

  5. python写魔兽世界脚本_用python bat写软件安装脚本 + HM NIS Edit自动生成软件安装脚本...

    2019-03-11更新:原来NSIS脚本也可以禁用64位文件操作重定向的! 1.在安装脚本的开始处定义 LIBRARY_X64. !include "MUI.nsh" !incl ...

  6. python写mysql脚本_使用python写一个监控mysql的脚本,在zabbix web上加上模板

    使用python写一个监控mysql的脚本,在zabbix web上加上模板: ##先使用MySQLdb的接口关联数据库. [root@cml python]# cat check_Mysql_cus ...

  7. 用python写聊天机器人_用Python 写一个机器人陪你聊天(文尾有彩蛋)

    工作一忙,原来秉烛夜谈的好友现在都很少聊天,微信都成了微信群的天下,鲜有微信好友给你发消息,想要主动发却也找不到开题话题,怎么办?用Python写一个机器人陪自己聊聊天吧.以下是源码及解析,小白都看得 ...

  8. python 写一个计算器_用 Python 写个计算器

    首页 专栏 python 文章详情 0 用 Python 写个计算器 Python小二 发布于 56 分钟前 我们常见的计算辅助工具有两种,一种是古人发明的算盘,另一种就是我们现代人发明的计算器,与算 ...

  9. python写爬虫教程_用Python写爬虫程序基础教程(一)

    最近身边朋友都在讨论股市是不是牛市要来了吧? 如果想自己做一个股市收盘价前三十名的涨跌幅度,又不用每天去点击网页浏览,用Python写个爬虫程序来做是不是超棒der 环境建置 安装Python 安装P ...

  10. python写采集程序_用python写的一个wordpress的采集程序

    在学习python的过程中,经过不断的尝试及努力,终于完成了第一个像样的python程序,虽然还有很多需要优化的地方,但是目前基本上实现了我所要求的功能,先贴一下程序代码: 具体代码如下: #! /u ...

最新文章

  1. oracle database 9i/10g/11g 编程艺术 源代码下载
  2. UNIX高级环境编程(9)进程控制(Process Control)- fork,vfork,僵尸进程,wait和waitpid...
  3. java 中IO流的概念
  4. java to对象_java中同类对象之间的compareTo()和compare()方法对比分析
  5. mysql报错注入实战_MySQL手工注入实战
  6. hadoop--HDFS_NameNode和SecondaryNameNode工作机制
  7. python和对象复习_python 面向对象基础和高级复习
  8. codeforces 792CDivide by Three(两种方法:模拟、动态规划
  9. angler前端框架_Google前端框架AngularJS创始人Misko Hevery专访
  10. C++基础知识点(3)
  11. AD15如何更新原理图库
  12. Google地图坐标拾取器,地图选点,获取经纬度
  13. Advanced Design System 破解教程 ADS 2017
  14. STC15F104W 使用 315/433 MHz 超再生模块发送/接收数据
  15. 倒在转“码”路上的文科生
  16. 十大编程语言,每一个都不容易学,但每一个又很有用,黑客必备
  17. C++实现太阳系行星系统
  18. Session | 基于Session改造oa项目的登录功能
  19. 【模拟电子技术Analog Electronics Technology 5】——晶体三极管基极和集电极电阻有什么作用?
  20. Linux上安装Adminer

热门文章

  1. Java 20年:JVM虚拟化技术的发展
  2. ArchLinux下LXDE的安装与设置心得
  3. AS3.0(3)-函数;类;对象
  4. Java项目-基于SSM实现律师事务所管理平台
  5. 基于SSM实现公司内部培训系统的开发
  6. 防止接口数据出问题,前端假数据调试
  7. 在JDK 6和JDK 7的substring()方法的区别?
  8. Unity热更新技术整理
  9. NES模拟器开发-CPU笔记
  10. 设置Windows7各种睡眠方式