【python】端口扫描的python脚本



#! usr/bin/python2.7

# coding=gbk


import sys

import socket

import threading,time

socket.setdefaulttimeout(10)  #设置全局默认超时时间

import thread

import time   #获取时间和延时


def ip2num(ip):

    ip = [int(x) for x in ip.split('.')]

    return ip[0] << 24 | ip[1] << 16 | ip[2] << 8 | ip[3]


def num2ip(num):

    #if num >= IPend:

        #print "IP导入数组完成"

    return '%s.%s.%s.%s' % ((num & 0xff000000) >> 24,

                            (num & 0x00ff0000) >> 16,

                            (num & 0x0000ff00) >> 8,

                            (num & 0x000000ff))


def get_ip(Aip1,Aip2):    #返回数组

    global IPend

    IPend = Aip2

    return [num2ip(num) for num in range(Aip1,Aip2+1) if num & 0xff]


def socket_port(ip,PORT):

    try:

        if PORT >= 65535:

            print "0-65535端口扫描结束,端口值超出范围"

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

        #s.settimeout(float(1))

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

        if (result == 0):

            print ip,":",PORT,"-"*10,u"端口开放","\n"

            

        s.close()

        

    except:

        print "扫描端口异常","\n"


    

if __name__ == '__main__':


    print '+','-'*20,'+'

    print '+',' '*20,'+'

    print '+',' '*2,'端口扫描器V1.1',' '*2,'+'

    print '+',' '*20,'+'

    print '+','-'*20,'+'

    ip1 = ip2num(raw_input('输入起始ip:'))

    ip2 = ip2num(raw_input('输入结束ip:'))

    list_ip = get_ip(ip1,ip2)

    print "需要扫描"+str(len(list_ip))+"个ip"


    print "输入想要扫描的端口段:"

    n = int(raw_input("输入起始端口:"))

    m = int(raw_input("输入结束端口:"))

        


    #list_ip = get_ip(ip2num("127.0.0.1"),ip2num("127.0.1.1"))

        

        

    t = time.time()

        

    I1 = 0

    while I1 < len(list_ip):

        #print list_ip[I1]

        

        for i in range(n,m):

            thread.start_new_thread(socket_port,(list_ip[I1],int(i)))

            time.sleep(0.01)

        I1 = I1 + 1

        


        

    print '扫描端口完成用时 time:%f 秒' %(time.time()-t)


    print "扫描结束"


    raw_input()


评论

© sh4dow | Powered by LOFTER