北极熊用着有点蛋疼

import requests
import mechanize
import cookielib
import sys
import IPy
import threading
import Queue
import argparse
class findTitle(object):
    def __init__(self,host,port,threads):
        self.threads = threads
        self.lock = threading.Lock()
        self.queue = Queue.Queue()
        self.host = host
        self.findc()
        self.port = [‘80‘,‘8080‘]
        if port.strip():
            self.port = [‘80‘,‘8080‘]+port.split(‘,‘)
        self.into_queue()
    def findc(self):
        try:
            self.iplist = IPy.IP(self.host)
        except Exception,e:
            print e
        return
    def into_queue(self):
        for ip in self.iplist:
            for port in self.port:
                url = "http://%s:%s"%(str(ip),str(port))
                self.queue.put(url)
    def find_title(self,url):
        try:
            br = mechanize.Browser()
            br.set_cookiejar(cookielib.LWPCookieJar()) # Cookie jar
            br.set_handle_equiv(True) # Browser Option
            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‘)
            return t
        except Exception,e:
                return ‘‘
    def find_info(self,url):
        server = ‘‘
        powered = ‘‘
        try:
            r = requests.get(url,timeout=4)
            try:
                server = r.headers[‘Server‘]
            except Exception,e:
                #print e
                pass
            try:
                powered = r.headers[‘X-Powered-By‘]
            except Exception,e:
                #print e
                pass
        except Exception,e:
            #print e
            pass
        return server.strip()+"  "+powered.strip()
    def scan(self):
        while True:
            if self.queue.qsize() == 0:
                break
            url = self.queue.get()
            title = self.find_title(url)
            info = self.find_info(url)
            sum = title+"  "+info
            if sum.strip():
                self.lock.acquire()
                print url+"  "+sum
                self.lock.release()
            self.queue.task_done()
        return
    def start(self):
        thread=[]
        for i in range(self.threads):
            t = threading.Thread(target=self.scan)
            t.setDaemon(True)
            t.start()
            thread.append(t)
        for t in thread:
            t.join()

#a = findTitle(‘43.242.49.0/24‘,‘‘,200)
#a.start()
if __name__ == "__main__":
    if len(sys.argv) < 2:
        print "127.0.0.0/24 port(default 80 8080) threads(default=256)"
        sys.exit()
    host = sys.argv[1]
    port = ‘‘
    threads=256
    try:
        port = sys.argv[2]
    except:
        pass
    try:
        threads = sys.argv[3]
    except:
        pass

    a = findTitle(‘43.242.49.0/24‘,‘‘,200)
    a.start()

时间: 2024-08-11 01:35:20

北极熊用着有点蛋疼的相关文章

最蛋疼的bug:读取图片缩略图(一定要在相册查看下形成缓存)

最近的一个连接服务端的应用,需要读取图片,一般供用户发布商品选择上传图片,初始的图片列表应该是缩略图,只有确定了,才上传原图,OK不多说上代码 package edu.buaa.erhuo; import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.json.JSONArray; import

CSS那些事!这个篇幅是我特意开的,不是因为帮助小菜之类的,而是在多人的团队配合中各种命名冲突的规范让人蛋疼

CSS那些事!这个篇幅是我特意开的,不是因为帮助小菜之类的,而是在多人的团队配合中各种命名冲突的规范让人蛋疼. css这个东西只要不是新的离谱都会写,但是每个人的命名风格,方法,都不同 有人喜欢驼峰,有人觉得-不错,有的人觉得_很方便,最后有的英文命名,有的干脆拼音....囧 http://www.cnblogs.com/LoveOrHate/category/682181.html 然后没有统一的格式,造成的结果...我爆炸了... 当然经常和团队合作的也就不用看了 这些文章我是专门找啊找,找

蛋疼的郁闷——聚集索引扫描、非聚集索引扫描、表扫描区别

聚集索引扫描,首先我们知道数据它是以索引键为叶节点排列起来的树形数据结构,表中每行的数据都附属在索引键中,对这样的表进行数据查找时,最快的方式当然是“聚集索引查找”.什么情况下才是“聚集索引扫描”呢?是当你要查找的数据的条件字段上没有索引时,此时查询执行器将对整个表中的数据挨个的进行读取确认符合查询条件的数据,但当该表上有字段设有聚集索引时,该扫描过程称之为“聚集索引扫描",相反的情况是当该表上没有一个字段设有”聚集索引“时,该扫描过程称之为”表扫描“.其实他们本质上的过程都是一样的,就是挨个的

蛋疼的SVG外部引用方式

SVG在html页面中有两种引用方式: 1. 内联.就是直接将SVG图形写在html的svg标签中,比如: <html> <head></head> <body> <svg ...> > ... > 内联式 </svg> > </body> </html> 2. 外部引用.就是以img标签,embed标签,object标签或iframe标签引用外部的svg文件,比如: <html>

Ubuntu14.04LTS安装引发的蛋疼

2014.11.19,怀着激动的心,还有学习的态度,装了Ubuntu14.04,画面好看,速度也快,但是装上之后,就蛋疼了,校园网连接不了,然后寻找大神,得出原因,需要ia32-libs库,但是,一般安装都很难装上,而且很多源上已没有这个包,所以,又选择了Ubuntu12.04LTS(听大神说完美解决ia32-libs库以来问题),但是,系统没安装完,就又发生了蛋疼的事,grub无法安装,也就是说安装系统的时候无法引导,最后登陆ubuntu11的liveCD上覆盖grub,这样才成功,不过,蛋疼

蛋疼的郁闷-聚集索引扫描、非聚集索引扫描、表扫描区别

本文适用于对数据库索引有一定深入的攻城师阅读参考. 我们对于聚集索引扫描和表扫描比较容易理解的,但是对于非聚集索引扫描不太容易理解,这一点也往往容易使初学者感到很是困惑,原因是总认为没必要存在非聚集索引扫描,因为如果查询结果不具有高选择性的话,在聚集索引表中可以使用聚集索引扫描,在对表中会使用表扫描的,那么为什么要会存在非聚集索引扫描呢? 之所以有这样的问题,是因为我们没有考虑到一种情况,那就是查询结果如果被建有非聚集索引的字段覆盖或包含了,而此时where条件字段上的非聚集索引对于本次查询结果

微信广告被收回 不为蛋疼为淡定

移动互联网广告在全球的兴起,似乎是被注定的.企业的追逐.平台的广阔.用户的认可.利润的丰厚,都让其成为广告界吸金流的新宠.尤其是依附于移动社交应用的广告,更是被看做互联网企业营收的未来中流砥柱.对于移动社交应用来说,广告业务就是它手中的"尚方宝剑",甚至连母公司都不能对其掉以轻心. 也正是因为移动互联网广告业务的重要性,母公司似乎不甘心让移动社交应用手握重兵,独立门户.腾讯宣布,目前旗下社交广告的业务将统一收入新部门"社交与效果广告部"麾下,其核心就是微信广告中心和

ChartDirector 蛋疼目录

ChartDirector 蛋疼目录,感觉截db了 Y-Axis Scalingy轴 柱状图 CSharpASP/axisscale.aspx Start Angle and Direction 饼图/CSharpASP/anglepie.aspx Background and Wallpaper背景和壁纸 /CSharpASP/background.aspx Binary Data Series二进制数据系列/CSharpASP/binaryseries.aspx Box-Whisker Ch

手游:cocos2d-x3.0 移植 wp8 开发 各种 “蛋疼”问题的汇总

蛋疼的问题的起源: wp8 做应用开发,显示显示中文,源码包含中文都是没有一点问题的, 只是cocos2d-x 的编码方式(UTF-8),引起的一系列的问题. 1:不能显示服务器返回的中文 2:c++ 包含中文的问题 解决方案: 微米黑--开元字体库, 提点:  非常小 ----未完待续... 手游:cocos2d-x3.0 移植 wp8 开发 各种 "蛋疼"问题的汇总,布布扣,bubuko.com