python扫描内网banner信息

小菜自己无聊写着玩,主要纪念以前的逗逼学习,可以改IPy

import mechanize
import cookielib
import socket
import argparse
import threading

def findc(ip):
        position = find_position(ip)
        ip_all = []
        for i in range(1,256):
            ip1 = ip[:position] + str(i)
            ip_all.append(ip1)
        return ip_all
        
def find_position(ip):
    m = len(ip)-1
    while True:
        if ip[m] == '.':
            return m+1
            break
        else:
            m = m-1

def find_title(url):
    try:
        global ip,port
        br = mechanize.Browser()
        br.set_cookiejar(cookielib.LWPCookieJar()) # Cookie jar
        br.set_handle_equiv(True) # Browser Option
#        br.set_handle_gzip(True)
        br.set_handle_redirect(True)
        br.set_handle_referer(True)
        br.set_handle_robots(False)
        br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)
    
        br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')] 
                
        br.open(url)
        t = br.title().decode('utf-8').encode('gb2312')
        mutex.acquire()
        print "url: %s-->%s"%(url,t)
        mutex.release()    
    except:
        print "this url don't have titile: %s"%url
        pass
    
if __name__ == "__main__":
#    name = socket.gethostname()
#    ip = socket.gethostbyname(name)    
    global ip,port,mutex
    mutex = threading.Lock()
    parser = argparse.ArgumentParser()
    parser.add_argument("-i","--ip",dest="a", help='the first argument')
    parser.add_argument("-p","--port",dest="b",default=80, help='the first argument')
    parser.add_argument("-t","--thread",dest="c",default=10, type=int,help='the first argument')
    args=parser.parse_args()
    ip = args.a
    port = args.b
    thread = args.c
    
    threads = []
    c = findc(ip)
    for i in c:
        print i
    for i in c:
        url = "http://"+i.strip()+":"+str(port)
        threads.append(threading.Thread(target=find_title,args=(url,)))
        
    for t in threads:
        while True:
            if threading.activeCount() < thread:
                break
        t.start()

    for t in threads:
        t.join()    

            
            
            
            
            
            
            
            

 

转载于:https://www.cnblogs.com/lly-lly/p/5390908.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值