使用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)
时间: 2024-10-14 16:10:21

使用Python扫描端口的相关文章

python扫描端口脚本

#!/usr/bin/python#coding=utf-8'''一.socket模块的类方法:socket.socket(family,type)——创建并返回一个新的socket对象socket.getfqdn(name)——将使用点好分割的IP地址字符串转换成一个完整的域名socket.gethostbyname(name)——将主机名解析为一个使用点号分隔的IP地址字符串socket.fromfd(fd,family,type)——从现有文件描述符创建一个socket对象二.socket

扫描端口占用情况的python脚本

之前项目上线前,领导要求让写一个脚本用来判断端口的占用情况.由于现在python3使用也比较多,基于python2修改了一下,做了个python3版本的,现在做一下总结. 一.python脚本实现扫描端口: pthon2下代码如下(当时的环境): #!/usr/bin/env python # -*- coding:utf-8 -*- # used for pthon2.*    import socket, time, thread socket.setdefaulttimeout(3) #设

1、python渗透测试——扫描端口(笔记)

做一个战士不是一件简单的事,这是一件无休止的,会持续到我们生命最后一刻的斗争.没有人生下来就是战士,就像没人生下来就注定庸碌,是我们让自己变成这样或者那样!--夏目漱石 设计思路:调用optparse.OptionParse()方法,构建选项分析器,接受主机名(或者IP地址),扫描的端口列表两个参数.构建两个函数PortScan和ConnScan,PortScan解析主机名成IP地址,然后枚举端口列表中的每个端口用ConnScan函数尝试连接主机,打印扫描端口的信息. 主函数代码: def ma

python扫描proxy并获取可用代理ip列表

mac或linux下可以work的代码如下: # coding=utf-8 import requests import re from bs4 import BeautifulSoup as bs import Queue import threading import random import re headers_useragents = [] headers_referers = [] headers_referers.append('http://www.google.com/?q=

Python扫描指定目录下(包括子目录)的文件

扫描指定目录下的文件,或者匹配指定后缀和前缀的函数. 如果要扫描指定目录下的文件,包括子目录,调用scan_files("/export/home/test/") 如果要扫描指定目录下的特定后缀的文件(比如jar包),包括子目录,调用scan_files("/export/home/test/", postfix=".jar") 如果要扫描指定目录下的特定前缀的文件(比如test_xxx.py),包括子目录,调用scan_files("

[Java]ping或扫描端口的工具类

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintStream; import java.net.InetSocketAddress; import java.net.Socket; import java.util.ArrayList; import java.util.HashMap; import java.util

python socket 端口测试

#coding:utf8import socket,time,re,thread,ostimeout=3socket.setdefaulttimeout(timeout) def socket_port(ip,port):    s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)    result=s.connect_ex((ip,port))    if result==0:        lock.acquire()        prin

Python实现端口检测

一.背景: 在平时工作中有遇到端口检测,查看服务端特定端口是否对外开放,常用nmap,tcping,telnet等,同时也可以利用站长工具等web扫描端口等.但是在使用站长工具发现: 每次只能输入一个检测的地址: 虽然可以输入多个端口,但是不能指定一个端口范围来进行批量检测: 没有批量任务记录日志等: 因避免由于局域网检测发起端网络限制而导致的端口检测异常,未使用python-nmap想通过调用站长工具,实现 单次可多个地址或域名检测 单词可指定端口范围,批量检测 记录日志 二.代码: 2.1

python实现端口状态扫描

要实现端口状态扫描需要用到python的namp模块. 先到地址:https://pypi.python.org/pypi/python-nmap下载namp的软件包. 我这里下载的是0.6.1版本,OS是centos 7. 执行如下命令安装namp模块: cd python-nmap-0.6.1 python setup install python实现代码如下: #!/usr/bin/env python # -*- coding: utf-8 -*- #python version:  P