mui 登录功能实现怎么实现IP限制

【No122】2017年最新使用MUI开发跨平台混合APP全套完整视频教程MUI 全接触(一)【录播】MUI 介绍、新项目创建、 基础布局(13分钟)【录播】MUI - accordion(折叠面板)、button(10分钟)【录播】MUI - actionsheet(操作表)、badge(13分钟)【录播】MUI - 复选框、单选框、使用js获取选择值(15分钟)【录播】MUI - datepicker(时间选择器)(19分钟)MUI 全接触(二)【录播】MUI - dialog对话框、ipnut (表单)(23分钟)【录播】MUI - slide(轮播组件)(17分钟)【录播】MUI - list(列表/图文列表)(8分钟)【录播】MUI - progressbar、滑块及switch(19分钟)【录播】MUI - cardview、mask(遮罩蒙版)(13分钟)MUI 全接触 (三)【录播】MUI - 窗口管理及窗口之间的数据传递(30分钟)【录播】MUI - 事件管理及自定义事件详解(26分钟)【录播】APP与服务器之间的交互原理、MUI Ajax使用(22分钟)下载地址:君,已阅读到文档的结尾了呢~~
广告剩余8秒
文档加载中
考虑不确定性因素的交直流混合电网可用输电能力研究,不确定性原理,不确定性,不确定性规避,不确定性推理,不确定性分析,海森堡不确定性原理,环境不确定性,量子不确定性,亲子不确定性
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
考虑不确定性因素的交直流混合电网可用输电能力研究
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
在https://datamarket.azure.com/account/datasets这里注册帐号后申请一个免费的KEY,一个月可以查询5000次,其申请方法网上有很多教程了。
import requests
r = requests.get('http://www.bing.com/search?q=ip:'+ip+'&count=50')
responseHtml = r.content
match = re.findall(r'&li class=\"b_algo\"&&h2&&a href=\"(.*?)\"', responseHtml)
#print match
for val in match:
import reimport requests&r = requests.get('http://www.bing.com/search?q=ip:'+ip+'&count=50')responseHtml = r.contentmatch = re.findall(r'&li class=\"b_algo\"&&h2&&a href=\"(.*?)\"', responseHtml)#print matchfor val in match:&&&&print val
继续进行批量查询
#-*- coding: utf-8 -*-
import socket
import sys
import json
import requests
import time
import thread
def scan(ip_str):
检测扫描端口是否开启
然后利用bing旁站进行遍历
port = '80'
cs=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
address=(str(ip_str),int(port))
status = cs.connect_ex((address))
#若返回的结果为0表示端口开启
if(status == 0):
print ip_str
res = requests.get('http://www.bing.com/search?q=ip:'+ip_str+'&count=50')
match = re.findall(r'&li class=\"b_algo\"&&h2&&a href=\"(.*?)\"', res.content)
for val in match:
cs.close()
def find_ip(ip_prefix):
给出当前的192.168.1 ,然后扫描整个段所有地址
for i in range(1,256):
ip = '%s.%s'%(ip_prefix,i)
thread.start_new_thread(scan, (ip,))
time.sleep(0.3)
if __name__ == "__main__":
commandargs = sys.argv[1:]
args = "".join(commandargs)
ip_prefix = '.'.join(args.split('.')[:-1])
find_ip(ip_prefix)
123456789101112131415161718192021222324252627282930313233343536373839404142
#-*- coding: utf-8 -*-import socketimport sysimport jsonimport requestsimport reimport timeimport thread&&def scan(ip_str):&&&&'''&&&&检测扫描端口是否开启&&&&然后利用bing旁站进行遍历&&&&'''&&&&port = '80'&&&&cs=socket.socket(socket.AF_INET,socket.SOCK_STREAM)&&&&address=(str(ip_str),int(port))&&&&status = cs.connect_ex((address))&&&&#若返回的结果为0表示端口开启&&&&if(status == 0):&&&&&&&&print ip_str&&&&&&&&res = requests.get('http://www.bing.com/search?q=ip:'+ip_str+'&count=50')&&&&&&&&match = re.findall(r'&li class=\"b_algo\"&&h2&&a href=\"(.*?)\"', res.content)&&&&&&&&for val in match:&&&&&&&&&&&&print val&&&&cs.close()&&&&&& def find_ip(ip_prefix):&&&&'''&&&&给出当前的192.168.1 ,然后扫描整个段所有地址&&&&'''&&&&for i in range(1,256):&&&&&&&&ip = '%s.%s'%(ip_prefix,i)&&&&&&&&thread.start_new_thread(scan, (ip,))&&&&&&&&time.sleep(0.3)&&&&&&&&if __name__ == "__main__":&&&&commandargs = sys.argv[1:]&&&&args = "".join(commandargs)&& &&&&&&&&&&ip_prefix = '.'.join(args.split('.')[:-1])&&&&find_ip(ip_prefix)
附加上另外一个验证的脚本
Uses Bing search engine to identify (and validate) websites hosted on the same web server
#!/usr/bin/python
import socket, sys, re, urllib2, StringIO, gzip, zlib
from bs4 import BeautifulSoup
import tldextract
if len(sys.argv) && 2:
print '\n[!] Two arguments required.'
print 'Example: python neighbs.py www.website.com'
print 'Example: python neighbs.py 1.2.3.4'
sys.exit()
sharedHost = sys.argv[1]
duplicateCheckList = []
def validateHostIP(target):
isIP = re.match("^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$", target)
isHostName = re.match("^(([a-zA-Z]|[a-zA-Z][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z]|[A-Za-z][A-Za-z0-9\-]*[A-Za-z0-9])$", target)
return 'IP'
elif isHostName:
return 'HOSTNAME'
return False
def resolve(target):
if hasattr(socket, 'setdefaulttimeout'):
socket.setdefaulttimeout(3)
peos = socket.gethostbyaddr(target)
return peos[2][0]
return False
def make_requests(sharedTarget):
response = [None]
responseText = None
for requests in range (1, 101):
if(request_www_bing_com(response, requests, sharedTarget)):
responseText = read_response(response[0])
soup = BeautifulSoup(responseText)
for A in soup.find_all('a', href=True):
domain = str('.'.join(list(tldextract.extract(A['href']))[:10]))
if not domain.startswith('.') and not len(domain) & 4:
if domain not in duplicateCheckList:
if resolve(sharedHost) == resolve(domain):
duplicateCheckList.append(domain)
print '[+] '+domain
domain = ''
response[0].close()
def read_response(response):
if response.info().get('Content-Encoding') == 'gzip':
buf = StringIO.StringIO(response.read())
return gzip.GzipFile(fileobj=buf).read()
elif response.info().get('Content-Encoding') == 'deflate':
decompress = zlib.decompressobj(-zlib.MAX_WBITS)
inflated = decompress.decompress(response.read())
inflated += decompress.flush()
return inflated
return response.read()
def request_www_bing_com(response, requests, sharedTarget):
response[0] = None
req = urllib2.Request("http://www.bing.com/search?q=ip%3A"+str(sharedTarget)+"&first="+str(requests))
req.add_header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/ Firefox/32.0")
req.add_header("Accept", "text/html,application/xhtml+xml,application/q=0.9,*/*;q=0.8")
req.add_header("Accept-Language", "en-US,q=0.5")
req.add_header("Accept-Encoding", "gzip, deflate")
req.add_header("Referer", "http://www.bing.com/")
req.add_header("Cookie", "_EDGE_V=1; MUID=1AE853EBFEF; SRCHD=AF=NOFORM; SRCHUID=V=2&GUID=DF63C8A66FBDCF4DFC12DEE1; SRCHUSR=AUTOREDIR=0&GEOVAR=&DOB=; MUIDB=1AE853EBFEF; SRCHHPGUSR=CW=1280&CH=887; _RwBf=s=70&o=16; _HOP=; _SS=SID=BCC8BCA1D49CC&bIm=819187; SCRHDN=ASD=0&DURL=#; WLS=TS=")
req.add_header("Connection", "keep-alive")
response[0] = urllib2.urlopen(req)
except urllib2.URLError, e:
if not hasattr(e, "code"):
return False
response[0] = e
return False
return True
print '\n[*] Scanning for shared hosts. Please wait...'
print '------------------------------------------------'
if validateHostIP(sharedHost) == 'IP':
make_requests(sharedHost)
elif validateHostIP(sharedHost) == 'HOSTNAME':
make_requests(resolve(sharedHost))
print 'Something went wrong. Try again.'
print '------------------------------------------------'
print '[*] '+str(len(duplicateCheckList))+' unique domains found and verified to be on the same server.'
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
#!/usr/bin/python import socket, sys, re, urllib2, StringIO, gzip, zlibfrom bs4 import BeautifulSoupimport tldextract if len(sys.argv) && 2:&&&&print '\n[!] Two arguments required.'&&&&print 'Example: python neighbs.py www.website.com'&&&&print 'Example: python neighbs.py 1.2.3.4'&&&&sys.exit()else:&&&&sharedHost = sys.argv[1]&&&&duplicateCheckList = [] def validateHostIP(target):&&&&isIP = re.match("^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$", target)&&&&isHostName = re.match("^(([a-zA-Z]|[a-zA-Z][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z]|[A-Za-z][A-Za-z0-9\-]*[A-Za-z0-9])$", target)&&&&if isIP:&&&&&&&&return 'IP'&&&&elif isHostName:&&&&&&&&return 'HOSTNAME'&&&&else:&&&&&&&&return False def resolve(target):&&&&if hasattr(socket, 'setdefaulttimeout'):&&&&&&&&socket.setdefaulttimeout(3)&&&&try:&&&&&&&&peos = socket.gethostbyaddr(target)&&&&&&&&return peos[2][0]&&&&except:&&&&&&&&return False def make_requests(sharedTarget):&&&&response = [None]&&&&responseText = None &&&&for requests in range (1, 101):&&&&&&&&if(request_www_bing_com(response, requests, sharedTarget)):&&&&&&&&&&&&responseText = read_response(response[0])&&&&&&&&&&&&soup = BeautifulSoup(responseText)&&&&&&&&&&&&for A in soup.find_all('a', href=True):&&&&&&&&&&&&&&&&domain = str('.'.join(list(tldextract.extract(A['href']))[:10]))&&&&&&&&&&&&&&&&if not domain.startswith('.') and not len(domain) & 4:&&&&&&&&&&&&&&&&&&&&if domain not in duplicateCheckList:&&&&&&&&&&&&&&&&&&&&&&&&if resolve(sharedHost) == resolve(domain):&&&&&&&&&&&&&&&&&&&&&&&&&&&&duplicateCheckList.append(domain)&&&&&&&&&&&&&&&&&&&&&&&&&&&&print '[+] '+domain&&&&&&&&&&&&&&&&domain = ''&&&&&&&&&&&&&&&&&&&&&&&&response[0].close() def read_response(response):&&&&if response.info().get('Content-Encoding') == 'gzip':&&&&&&&&buf = StringIO.StringIO(response.read())&&&&&&&&return gzip.GzipFile(fileobj=buf).read() &&&&elif response.info().get('Content-Encoding') == 'deflate':&&&&&&&&decompress = zlib.decompressobj(-zlib.MAX_WBITS)&&&&&&&&inflated = decompress.decompress(response.read())&&&&&&&&inflated += decompress.flush()&&&&&&&&return inflated &&&&return response.read() def request_www_bing_com(response, requests, sharedTarget):&&&&response[0] = None&&&&try:&&&&&&&&req = urllib2.Request("http://www.bing.com/search?q=ip%3A"+str(sharedTarget)+"&first="+str(requests)) &&&&&&&&req.add_header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/ Firefox/32.0")&&&&&&&&req.add_header("Accept", "text/html,application/xhtml+xml,application/q=0.9,*/*;q=0.8")&&&&&&&&req.add_header("Accept-Language", "en-US,q=0.5")&&&&&&&&req.add_header("Accept-Encoding", "gzip, deflate")&&&&&&&&req.add_header("Referer", "http://www.bing.com/")&&&&&&&&req.add_header("Cookie", "_EDGE_V=1; MUID=1AE853EBFEF; SRCHD=AF=NOFORM; SRCHUID=V=2&GUID=DF63C8A66FBDCF4DFC12DEE1; SRCHUSR=AUTOREDIR=0&GEOVAR=&DOB=; MUIDB=1AE853EBFEF; SRCHHPGUSR=CW=1280&CH=887; _RwBf=s=70&o=16; _HOP=; _SS=SID=BCC8BCA1D49CC&bIm=819187; SCRHDN=ASD=0&DURL=#; WLS=TS=")&&&&&&&&req.add_header("Connection", "keep-alive") &&&&&&&&response[0] = urllib2.urlopen(req) &&&&except urllib2.URLError, e:&&&&&&&&if not hasattr(e, "code"):&&&&&&&&&&&&return False&&&&&&&&response[0] = e&&&&except:&&&&&&&&return False &&&&return True print '\n[*] Scanning for shared hosts. Please wait...'print '------------------------------------------------'if validateHostIP(sharedHost) == 'IP':&&&&make_requests(sharedHost)elif validateHostIP(sharedHost) == 'HOSTNAME':&&&&make_requests(resolve(sharedHost))else:&&&&print 'Something went wrong. Try again.'print '------------------------------------------------'print '[*] '+str(len(duplicateCheckList))+' unique domains found and verified to be on the same server.'
附另外一个查询脚本代码供学习、参考:此脚本使用Sqlite作数据库,申请的KEY可以在使用前保存在数据库中。使用方法看使用提示。
3、使用示例:
bing.py -add P1f3+ZAPBRv/wy7i3bxxxxxm2MXq3aA+iuu1UT6ypkY
//保存一个key到数据库中
bing.py -set 1
//把ID为1的Key设为默认使用的KEY.
bing.py -url
//查询google.com同IP的其他域名
bing.py -url 192.168.1.1-192.168.1.254 -save
//查询指定IP段的域名,并保存到数据库中以便查询
bing.py -url -view
//浏览数据库中保存的数据
以下是Python代码:
# -*- coding: utf-8 -*-
#https://datamarket.azure.com/account/datasets
#Code by Anle
import sys
import urllib
import urllib2
import base64
import sqlite3
import socket
import struct
import time
from datetime import datetime,timedelta
import json
except ImportError:
import simplejson as json
AccountKey=''
formats='json'
useCounts = 0
ConfigFile='%s\\bing.db' % (sys.path[0])
def _usage():
print 'Bing Domain dig Usage:'
print '\t%s &options& [Host]' % sys.argv[0]
print 'Options:\t'
print '-url\t\tOnly view url.\t'
print '-uri\t\tView url of full path.\t'
print '-desc\t\tView description info.\t'
print '-key\t\tView all account key.\t'
print '-add &key&\tAdd a key to database.\t'
print '-set &id& [num]\tSet a key to current use.\t'
print '-del &id&\tDelete a key from database.\t'
print '-view\t\tView the last saved record.\t'
print '-save\t\tSave to databse.\t'
print '-export &path&\tExport data to file.\n'
def CheckDatabaseExist():
szSQL="SELECT name FROM sqlite_master WHERE type='table'"
conn=sqlite3.connect(ConfigFile)
cursor=conn.execute(szSQL)
except sqlite3.Error,e:
print '[-] ',sqlite3.Error,e
for row in cursor:
if row[0]=='AllKey' or row[0]=='Data':
nTable += 1
if nTable!=2:
conn.execute("Create table AllKey(ID integer PRIMARY KEY autoincrement,bActive INT NOT NULL,KeyName TEXT UNIQUE NOT NULL,VisitMonth INT default 0,UseCount INT default 0);")
conn.execute("Create table Data(ID integer PRIMARY KEY autoincrement,IP TEXT NOT NULL,URI TEXT NOT NULL,Title TEXT,Descript TEXT);")
cursor.close()
conn.close()
return nTable==2
def GetAccountKey():
conn = sqlite3.connect(ConfigFile)
cf=conn.cursor()
cursor = cf.execute("Select ID,KeyName,UseCount from AllKey where bActive=1")
keys=cf.fetchone()
if keys==None:
keys=[0,'',0]
cf.close()
conn.close()
return keys
def BuildHostRange(strHost):
startIpStr=""
endIpStr=""
realStartIP=0
realEndIP=0
if strHost.find('-')&0:
slash = strHost.split('-')
startIpStr=slash[0]
endIpStr=slash[1]
startIpStr=strHost
startIpStr=socket.gethostbyname(startIpStr)
if strHost.find('-')&0:
realStartIP = socket.ntohl(struct.unpack('I',socket.inet_aton(startIpStr))[0])
realEndIP = socket.ntohl(struct.unpack('I',socket.inet_aton(endIpStr))[0])
realStartIP=realEndIP=socket.ntohl(struct.unpack('I',socket.inet_aton(startIpStr))[0])
return [0,0]
return [realStartIP,realEndIP]
def ViewResult(Keyword,curIP,nType,bSave):
conn = sqlite3.connect(ConfigFile)
#conn.text_factory=str
ResData=BingSearch(Keyword)
JsonData={}
JsonData=json.loads(ResData)
for key,value in JsonData.items():
for key1,value1 in value.items():
for lv in value1:
if nType==0:
uu=lv['Url']
i=uu.find('/',8)
url.append(uu[0:i])
elif nType==1:
print lv['Url']
elif nType==2:
print '%s -& %s' % (lv['Url'],lv['Title'])
szSQL="Insert into Data(IP,URI,Title,Descript) values ('%s','%s','%s','%s');" % (curIP,lv['Url'],lv['Title'],lv['Description'])
conn.execute(szSQL)
conn.commit()
if nType==0:
for l in list(set(url)):
print '\r\n'
conn.close()
def ViewSaveData(nType):
conn = sqlite3.connect(ConfigFile)
conn.text_factory=str
cf=conn.cursor()
cf.execute("Select IP From DATA group by IP;")
ipList=cf.fetchall()
for IP in ipList:
cf.execute("Select URI,Title,Descript from Data where IP='%s';" % (IP))
dataList=cf.fetchall()
print '[%s]' % (IP)
for row in dataList:
if nType==0:
i=uu.find('/',8)
url.append(uu[0:i])
elif nType==1:
print row[0]
elif nType==2:
print '%s -& %s' % (row[0],row[1])
print '[-] No records.'
elif nType==0:
for l in list(set(url)):
cf.close()
conn.close()
def UpdateUseCount():
global useCounts
NowMonth=time.gmtime().tm_mon
OldMonth=1
conn = sqlite3.connect(ConfigFile)
cf=conn.cursor()
cursor = cf.execute("Select VisitMonth from AllKey where ID=%d" % useID)
keys=cf.fetchone()
if keys!=None:
OldMonth=keys[0]
cf.close()
if NowMonth - OldMonth &= 1:
useCounts = 1
szSQL="Update AllKey set useCount=%d,VisitMonth=%d where ID=%d" % (useCounts,NowMonth,useID)
cursor = conn.execute(szSQL)
conn.commit()
except sqlite3.Error,e:
print '[-] ',e
conn.close()
def BingSearch(query):
global useCounts
payload={}
payload['$top']=top
payload['$skip']=skip
payload['$format']=formats
payload['Query']="'"+query+"'"
url='https://api.datamarket.azure.com/Bing/Search/Web?' + urllib.urlencode(payload)
sAuth='Basic '+base64.b64encode(':'+AccountKey)
headers = { }
headers['Authorization']= sAuth
req = urllib2.Request(url,headers=headers)
response = urllib2.urlopen(req)
the_page=response.read()
useCounts += 1
return the_page
print '[-] Connect failed.'
if __name__ == '__main__':
argLen = len(sys.argv)
if argLen & 2:
sys.exit(0)
arg=sys.argv
if not CheckDatabaseExist():
print '[-] Database is not exist, but would auto create.'
strHost=""
bSave=False
bView=False
bManualStr=False
keyInfo=GetAccountKey()
useID=keyInfo[0]
AccountKey=keyInfo[1]
useCounts=keyInfo[2]
for x in range(1,argLen):
if arg[x]=='-url' and argLen&2:
if (x+1)&argLen:
strHost=arg[x+1]
if arg[x]=='-uri' and argLen&2:
if (x+1)&argLen:
strHost=arg[x+1]
if arg[x]=='-desc' and argLen&2:
if (x+1)&argLen:
strHost=arg[x+1]
if arg[x]=='-view':
bView=True
if arg[x]=='-key':
conn = sqlite3.connect(ConfigFile)
cf=conn.cursor()
cf.execute("SELECT ID,bActive,KeyName,UseCount from AllK")
keylist=[]
keylist=cf.fetchall()
for row in keylist:
if row[1]==1:
print '%s%-5d %s %5d' % (xx,row[0],row[2],row[3])
print '[-] No records.'
cf.close()
conn.close()
sys.exit(0)
if arg[x]=='-add' and argLen&2:
keystr=arg[x+1]
if not keystr:
print '[-] Please input a key value.\n'
sys.exit(0)
NowMonth=time.gmtime().tm_mon
szSQL="Insert into AllKey(bActive,KeyName,VisitMonth,UseCount) values (%d,'%s',%d,%d);" % (0,keystr,NowMonth,1)
conn = sqlite3.connect(ConfigFile)
conn.execute(szSQL)
conn.commit()
conn.close()
print '[+] Add a key records successfully.\r\n'
print '[-] This record has exsits.'
sys.exit(0)
if arg[x]=='-set' and argLen&2:
ID=int(arg[x+1])
if argLen&3:
useCounts=int(arg[x+2])
if not ID:
print '[-] ID value incorrect.'
sys.exit()
szSQL="Update AllKey set bActive=0;"
conn = sqlite3.connect(ConfigFile)
cursor = conn.execute(szSQL)
conn.commit()
szSQL="Update AllKey set bActive=1 where ID=%d" % (ID)
cursor = conn.execute(szSQL)
conn.commit()
print '[+] Set success.'
print '[-] Set failed.'
if useCounts&0:
UpdateUseCount()
sys.exit(0)
if arg[x]=='-del' and argLen&2:
ID=int(arg[x+1])
if not ID:
print '[-] ID value incorrect.'
sys.exit()
szSQL = 'Delete from AllKey where ID=%d;' % (ID)
conn = sqlite3.connect(ConfigFile)
cursor = conn.execute(szSQL)
conn.commit()
print '[+] Delete success.'
print '[-] Delete failed.'
sys.exit(0)
if arg[x]=='-save':
bSave=True
if arg[x]=='-api':
bManualStr=True
if arg[x]=='-export':
if not strHost and bView==False:
sys.exit()
if useID==0:
print '[-] Please set a active ID.'
sys.exit()
conn = sqlite3.connect(ConfigFile)
conn.execute("Delete from Data where ID&0;")
conn.commit()
conn.close()
if bManualStr:
ViewResult(strHost,strHost,nType,bSave)
UpdateUseCount()
sys.exit()
ViewSaveData(nType)
sys.exit()
"""uri, type, ID, Title, Description, DisplayUrl, Url"""
IpRange=BuildHostRange(strHost)
for index in range(IpRange[0],IpRange[1]+1):
curIP=socket.inet_ntoa(struct.pack('I',socket.htonl(index)))
SearchKeyWord='IP:' + curIP
print '[%s]' % (curIP)
ViewResult(SearchKeyWord,curIP,nType,bSave)
UpdateUseCount()
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347
# -*- coding: utf-8 -*-#https://datamarket.azure.com/account/datasets#Code by Anleimport sysimport urllib&&import urllib2&&import base64import sqlite3import socketimport structimport timefrom datetime import datetime,timedeltatry:&&&&&&import json&&except ImportError:&&&&&&import simplejson as json&& AccountKey=''&&top=100&&skip=0formats='json'useCounts = 0useID = 0ConfigFile='%s\\bing.db' % (sys.path[0])&def _usage():&&&&print 'Bing Domain dig Usage:'&&&&print '\t%s &options& [Host]' % sys.argv[0]&&&&print 'Options:\t'&&&&print '-url\t\tOnly view url.\t'&&&&print '-uri\t\tView url of full path.\t'&&&&print '-desc\t\tView description info.\t'&&&&print '-key\t\tView all account key.\t'&&&&print '-add &key&\tAdd a key to database.\t'&&&&print '-set &id& [num]\tSet a key to current use.\t'&&&&print '-del &id&\tDelete a key from database.\t'&&&&print '-view\t\tView the last saved record.\t'&&&&print '-save\t\tSave to databse.\t'&&&&print '-export &path&\tExport data to file.\n'&def CheckDatabaseExist():&&&&szSQL="SELECT name FROM sqlite_master WHERE type='table'"&&&&try:&&&&&&&&conn=sqlite3.connect(ConfigFile)&&&&&&&&cursor=conn.execute(szSQL)&&&&except sqlite3.Error,e:&&&&&&&&print '[-] ',sqlite3.Error,e&&&&&&&&return 0&&&&nTable=0&&&&for row in cursor:&&&&&&&&if row[0]=='AllKey' or row[0]=='Data':&&&&&&&&&&&&nTable += 1&&&&if nTable!=2:&&&&&&&&conn.execute("Create table AllKey(ID integer PRIMARY KEY autoincrement,bActive INT NOT NULL,KeyName TEXT UNIQUE NOT NULL,VisitMonth INT default 0,UseCount INT default 0);")&&&&&&&&conn.execute("Create table Data(ID integer PRIMARY KEY autoincrement,IP TEXT NOT NULL,URI TEXT NOT NULL,Title TEXT,Descript TEXT);")&&&&cursor.close()&&&&conn.close()&&&&return nTable==2&def GetAccountKey():&&&&conn = sqlite3.connect(ConfigFile)&&&&cf=conn.cursor()&&&&cursor = cf.execute("Select ID,KeyName,UseCount from AllKey where bActive=1")&&&&keys=cf.fetchone()&&&&if keys==None:&&&&&&&&keys=[0,'',0]&&&&cf.close()&&&&conn.close()&&&&return keys&def BuildHostRange(strHost):&&&&slash=[]&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&startIpStr=""&&&&endIpStr=""&&&&ranges=0&&&&submask=0&&&&&realStartIP=0&&&&realEndIP=0&&&&&if strHost.find('-')&0:&&&&&&&&slash = strHost.split('-') startIpStr=slash[0] endIpStr=slash[1]&&&&else: startIpStr=strHost&&&&try:&&&&&&&&startIpStr=socket.gethostbyname(startIpStr)&&&&&&&&if strHost.find('-')&0:&&&&&&&&&&&&realStartIP = socket.ntohl(struct.unpack('I',socket.inet_aton(startIpStr))[0])&&&&&&&&&&&&realEndIP = socket.ntohl(struct.unpack('I',socket.inet_aton(endIpStr))[0])&&&&&&&&else:&&&&&&&&&&&&realStartIP=realEndIP=socket.ntohl(struct.unpack('I',socket.inet_aton(startIpStr))[0])&&&&except:&&&&&&&&return [0,0]&&&&&return [realStartIP,realEndIP]&def ViewResult(Keyword,curIP,nType,bSave):&&&&conn = sqlite3.connect(ConfigFile)&&&&#conn.text_factory=str&&&&ResData=BingSearch(Keyword)&&&&JsonData={}&&&&try:&&&&&&&&JsonData=json.loads(ResData)&&&&except:&&&&&&&&pass&&&&url=[]&&&&for key,value in JsonData.items():&&&&&&&&for key1,value1 in value.items():&&&&&&&&&&&&for lv in value1:&&&&&&&&&&&&&&&&try:&&&&&&&&&&&&&&&&&&&&if nType==0:&&&&&&&&&&&&&&&&&&&&&&&&uu=lv['Url']&&&&&&&&&&&&&&&&&&&&&&&&i=uu.find('/',8)&&&&&&&&&&&&&&&&&&&&&&&&url.append(uu[0:i])&&&&&&&&&&&&&&&&&&&&elif nType==1:&&&&&&&&&&&&&&&&&&&&&&&&print lv['Url']&&&&&&&&&&&&&&&&&&&&elif nType==2:&&&&&&&&&&&&&&&&&&&&&&&&print '%s -& %s' % (lv['Url'],lv['Title'])&&&&&&&&&&&&&&&&&&&&if bSave:&&&&&&&&&&&&&&&&&&&&&&&&szSQL="Insert into Data(IP,URI,Title,Descript) values ('%s','%s','%s','%s');" % (curIP,lv['Url'],lv['Title'],lv['Description'])&&&&&&&&&&&&&&&&&&&&&&&&conn.execute(szSQL)&&&&&&&&&&&&&&&&&&&&&&&&conn.commit()&&&&&&&&&&&&&&&&except:&&&&&&&&&&&&&&&&&&&&pass&&&&if nType==0:&&&&&&&&for l in list(set(url)):&&&&&&&&&&&&print l&&&&print '\r\n'&&&&conn.close()&def ViewSaveData(nType):&&&&conn = sqlite3.connect(ConfigFile)&&&&conn.text_factory=str&&&&cf=conn.cursor()&&&&cf.execute("Select IP From DATA group by IP;")&&&&ipList=cf.fetchall()&&&&&for IP in ipList:&&&&&&&&cf.execute("Select URI,Title,Descript from Data where IP='%s';" % (IP))&&&&&&&&dataList=cf.fetchall()&&&&&&&&i=0&&&&&&&&url=[]&&&&&&&&print '[%s]' % (IP)&&&&&&&&for row in dataList:&&&&&&&&&&&&i += 1&&&&&&&&&&&&if nType==0:&&&&&&&&&&&&&&&&uu=row[0]&&&&&&&&&&&&&&&&i=uu.find('/',8)&&&&&&&&&&&&&&&&url.append(uu[0:i])&&&&&&&&&&&&elif nType==1:&&&&&&&&&&&&&&&&print row[0]&&&&&&&&&&&&elif nType==2:&&&&&&&&&&&&&&&&print '%s -& %s' % (row[0],row[1])&&&&&&&&if i&=0:&&&&&&&&&&&&print '[-] No records.'&&&&&&&&elif nType==0:&&&&&&&&&&&&for l in list(set(url)):&&&&&&&&&&&&&&&&print l&&&&cf.close()&&&&conn.close()&def UpdateUseCount():&&&&global useCounts&&&&try:&&&&&&&&NowMonth=time.gmtime().tm_mon&&&&&&&&OldMonth=1&&&&&&&&conn = sqlite3.connect(ConfigFile)&&&&&&&&cf=conn.cursor()&&&&&&&&cursor = cf.execute("Select VisitMonth from AllKey where ID=%d" % useID)&&&&&&&&keys=cf.fetchone()&&&&&&&&if keys!=None:&&&&&&&&&&&&OldMonth=keys[0]&&&&&&&&cf.close()&&&&&&&&if NowMonth - OldMonth &= 1:&&&&&&&&&&&&useCounts = 1&&&&&&&&szSQL="Update AllKey set useCount=%d,VisitMonth=%d where ID=%d" % (useCounts,NowMonth,useID)&&&&&&&&cursor = conn.execute(szSQL)&&&&&&&&conn.commit()&&&&except sqlite3.Error,e:&&&&&&&&print '[-] ',e&&&&conn.close()&&&&def BingSearch(query):&&&&global useCounts&&&&payload={}&&&&&&payload['$top']=top&&&&&&payload['$skip']=skip&&&&&&payload['$format']=formats&&&&&&payload['Query']="'"+query+"'"&&&&url='https://api.datamarket.azure.com/Bing/Search/Web?' + urllib.urlencode(payload)&&&&&& &&&&sAuth='Basic '+base64.b64encode(':'+AccountKey)&&&&&&&&&&&&headers = { }&&&&&&headers['Authorization']= sAuth&&&&&&try:&&&&&&&&&&req = urllib2.Request(url,headers=headers)&&&&&&&&&&&&&&&&&&response = urllib2.urlopen(req)&&&&&&&&the_page=response.read()&&&&&&&&useCounts += 1&&&&&&&&return the_page &&&&except:&&&&&&&&print '[-] Connect failed.'&&&&&&if __name__ == '__main__':&&&&argLen = len(sys.argv)&&&&if argLen & 2:&&&&&&&&_usage()&&&&&&&&sys.exit(0)&&&&arg=sys.argv&&&&if not CheckDatabaseExist():&&&&&&&&print '[-] Database is not exist, but would auto create.'&&&&&&&&nType=0&&&&strHost=""&&&&bSave=False&&&&bView=False&&&&bManualStr=False&&&&&&&&keyInfo=GetAccountKey()&&&&useID=keyInfo[0]&&&&AccountKey=keyInfo[1]&&&&useCounts=keyInfo[2]&&&&&&&&for x in range(1,argLen):&&&&&&&&if arg[x]=='-url' and argLen&2:&&&&&&&&&&&&nType=0&&&&&&&&&&&&if (x+1)&argLen:&&&&&&&&&&&&&&&&strHost=arg[x+1]&&&&&&&&if arg[x]=='-uri' and argLen&2:&&&&&&&&&&&&nType=1&&&&&&&&&&&&if (x+1)&argLen:&&&&&&&&&&&&&&&&strHost=arg[x+1]&&&&&&&&if arg[x]=='-desc' and argLen&2:&&&&&&&&&&&&nType=2&&&&&&&&&&&&if (x+1)&argLen:&&&&&&&&&&&&&&&&strHost=arg[x+1]&&&&&&&&if arg[x]=='-view':&&&&&&&&&&&&bView=True&&&&&&&&if arg[x]=='-key':&&&&&&&&&&&&conn = sqlite3.connect(ConfigFile)&&&&&&&&&&&&cf=conn.cursor()&&&&&&&&&&&&cf.execute("SELECT ID,bActive,KeyName,UseCount from AllK")&&&&&&&&&&&&keylist=[]&&&&&&&&&&&&keylist=cf.fetchall()&&&&&&&&&&&&i=0&&&&&&&&&&&&for row in keylist:&&&&&&&&&&&&&&&&xx=' '&&&&&&&&&&&&&&&&if row[1]==1:&&&&&&&&&&&&&&&&&&&&xx='&'&&&&&&&&&&&&&&&&print '%s%-5d %s %5d' % (xx,row[0],row[2],row[3])&&&&&&&&&&&&&&&&i += 1&&&&&&&&&&&&if i&=0:&&&&&&&&&&&&&&&&print '[-] No records.'&&&&&&&&&&&&cf.close()&&&&&&&&&&&&conn.close()&&&&&&&&&&&&sys.exit(0)&&&&&&&&if arg[x]=='-add' and argLen&2:&&&&&&&&&&&&keystr=arg[x+1]&&&&&&&&&&&&if not keystr:&&&&&&&&&&&&&&&&print '[-] Please input a key value.\n'&&&&&&&&&&&&&&&&sys.exit(0)&&&&&&&&&&&&NowMonth=time.gmtime().tm_mon&&&&&&&&&&&&szSQL="Insert into AllKey(bActive,KeyName,VisitMonth,UseCount) values (%d,'%s',%d,%d);" % (0,keystr,NowMonth,1)&&&&&&&&&&&&conn = sqlite3.connect(ConfigFile)&&&&&&&&&&&&try:&&&&&&&&&&&&&&&&conn.execute(szSQL)&&&&&&&&&&&&&&&&conn.commit()&&&&&&&&&&&&&&&&conn.close()&&&&&&&&&&&&&&&&print '[+] Add a key records successfully.\r\n'&&&&&&&&&&&&except:&&&&&&&&&&&&&&&&print '[-] This record has exsits.'&&&&&&&&&&&&sys.exit(0)&&&&&&&&if arg[x]=='-set' and argLen&2:&&&&&&&&&&&&ID=int(arg[x+1])&&&&&&&&&&&&if argLen&3:&&&&&&&&&&&&&&&&useCounts=int(arg[x+2])&&&&&&&&&&&&if not ID:&&&&&&&&&&&&&&&&print '[-] ID value incorrect.'&&&&&&&&&&&&&&&&sys.exit()&&&&&&&&&&&&try:&&&&&&&&&&&&&&&&szSQL="Update AllKey set bActive=0;"&&&&&&&&&&&&&&&&conn = sqlite3.connect(ConfigFile)&&&&&&&&&&&&&&&&cursor = conn.execute(szSQL)&&&&&&&&&&&&&&&&conn.commit()&&&&&&&&&&&&&&&&szSQL="Update AllKey set bActive=1 where ID=%d" % (ID)&&&&&&&&&&&&&&&&cursor = conn.execute(szSQL)&&&&&&&&&&&&&&&&conn.commit()&&&&&&&&&&&&&&&&print '[+] Set success.'&&&&&&&&&&&&except:&&&&&&&&&&&&&&&&print '[-] Set failed.'&&&&&&&&&&&&if useCounts&0:&&&&&&&&&&&&&&&&UpdateUseCount()&&&&&&&&&&&&sys.exit(0)&&&&&&&&if arg[x]=='-del' and argLen&2:&&&&&&&&&&&&ID=int(arg[x+1])&&&&&&&&&&&&if not ID:&&&&&&&&&&&&&&&&print '[-] ID value incorrect.'&&&&&&&&&&&&&&&&sys.exit()&&&&&&&&&&&&try:&&&&&&&&&&&&&&&&szSQL = 'Delete from AllKey where ID=%d;' % (ID)&&&&&&&&&&&&&&&&conn = sqlite3.connect(ConfigFile)&&&&&&&&&&&&&&&&cursor = conn.execute(szSQL)&&&&&&&&&&&&&&&&conn.commit()&&&&&&&&&&&&&&&&print '[+] Delete success.'&&&&&&&&&&&&except:&&&&&&&&&&&&&&&&print '[-] Delete failed.'&&&&&&&&&&&&sys.exit(0)&&&&&&&&if arg[x]=='-save':&&&&&&&&&&&&bSave=True&&&&&&&&if arg[x]=='-api':&&&&&&&&&&&&bManualStr=True&&&&&&&&if arg[x]=='-export':&&&&&&&&&&&&pass&&&&&if not strHost and bView==False:&&&&&&&&_usage()&&&&&&&&sys.exit()&&&&&if useID==0:&&&&&&&&print '[-] Please set a active ID.'&&&&&&&&sys.exit()&&&&&if bSave:&&&&&&&&conn = sqlite3.connect(ConfigFile)&&&&&&&&conn.execute("Delete from Data where ID&0;")&&&&&&&&conn.commit()&&&&&&&&conn.close()&&&&&if bManualStr:&&&&&&&&ViewResult(strHost,strHost,nType,bSave)&&&&&&&&UpdateUseCount()&&&&&&&&sys.exit()&&&&&if bView:&&&&&&&&ViewSaveData(nType)&&&&&&&&sys.exit()&&&&&&&&&&&&"""uri, type, ID, Title, Description, DisplayUrl, Url"""&&&&IpRange=BuildHostRange(strHost)&&&&for index in range(IpRange[0],IpRange[1]+1):&&&&&&&&curIP=socket.inet_ntoa(struct.pack('I',socket.htonl(index)))&&&&&&&&SearchKeyWord='IP:' + curIP&&&&&&&&print '[%s]' % (curIP)&&&&&&&&ViewResult(SearchKeyWord,curIP,nType,bSave)&&&&UpdateUseCount()
参考文献:
安了的笔记–《用Bing API接口实现同IP域名查询(Python版) 》:
注:文章开始的第一段bing查询代码作者不详,望作者看到本文可以联系我们,帮您及时补上版权。
/ script-bugs

我要回帖

更多关于 mui实现下拉框 的文章

 

随机推荐