在https://datamarket.azure.com/account/datasets这里注册帐号后申请一个免费的KEY,一个月可以查询5000次,其申请方法网上有很多教程了。
import re
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:
print val
继续进行批量查询
#-*- coding: utf-8 -*-
import socket
import sys
import json
import requests
import re
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:
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()
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):