Python小脚本查询同ip网站的方法
- 更新时间:2020-08-03 16:34:26
- 编辑:能飞鸾
旁站查询来源:
http://dns.aizhan.com
http://s.tool.chinaz.com/same
http://i.links.cn/sameip/
http://www.ip2hosts.com/
效果图如下:
以百度网站和小残博客为例:
PS:直接调用以上4个旁注接口查询同服服务器域名信息包含服务器类型 比如小残博客使用的是Tengine
#!/usr/bin/env python #encoding: utf-8 import re import sys import json import time import requests import urllib import requests.packages.urllib3 from multiprocessing import Pool from BeautifulSoup import BeautifulSoup requests.packages.urllib3.disable_warnings() headers = {'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.20 (KHTML, like Gecko) Chrome/19.0.1036.7 Safari/535.20'} def links_ip(host): ''' 查询同IP网站 ''' ip2hosts = [] ip2hosts.append("http://"+host) try: source = requests.get('http://i.links.cn/sameip/' + host + '.html', headers=headers,verify=False) soup = BeautifulSoup(source.text) divs = soup.findAll() if divs == []: #抓取结果为空 print 'Sorry! Not found!' return ip2hosts for div in divs: #print div.a.string ip2hosts.append(div.a.string) except Exception, e: print str(e) return ip2hosts return ip2hosts def ip2host_get(host): ip2hosts = [] ip2hosts.append("http://"+host) try: req=requests.get('http://www.ip2hosts.com/search.php?ip='+str(host), headers=headers,verify=False) src=req.content if src.find('result') != -1: result = json.loads(src)['result'] ip = json.loads(src)['ip'] if len(result)>0: for item in result: if len(item)>0: #log(scan_type,host,port,str(item)) ip2hosts.append(item) except Exception, e: print str(e) return ip2hosts return ip2hosts def filter(host): ''' 打不开的网站... ''' try: response = requests.get(host, headers=headers ,verify=False) server = response.headers['Server'] title = re.findall(r'<title>(.*?)</title>',response.content)[0] except Exception,e: #print "%s" % str(e) #print host pass else: print host,server def aizhan(host): ip2hosts = [] ip2hosts.append("http://"+host) regexp = r'''<a href="[^']+?([^']+?)/" rel="external nofollow" target="_blank">\1</a>''' regexp_next = r'''<a href="http://dns.aizhan.com/[^/]+?/%d/" rel="external nofollow" >%d</a>''' url = 'http://dns.aizhan.com/%s/%d/' page = 1 while True: if page > 2: time.sleep(1) #防止拒绝访问 req = requests.get(url % (host , page) ,headers=headers ,verify=False) try: html = req.content.decode('utf-8') #取得页面 if req.status_code == 400: break except Exception as e: print str(e) pass for site in re.findall(regexp , html): ip2hosts.append("http://"+site) if re.search(regexp_next % (page+1 , page+1) , html) is None: return ip2hosts break page += 1 return ip2hosts def chinaz(host): ip2hosts = [] ip2hosts.append("http://"+host) regexp = r'''<a href='[^']+?([^']+?)' target=_blank>\1</a>''' regexp_next = r'''<a href="javascript:" rel="external nofollow" val="%d" class="item[^"]*?">%d</a>''' url = 'http://s.tool.chinaz.com/same?s=%s&page=%d' page = 1 while True: if page > 1: time.sleep(1) #防止拒绝访问 req = requests.get(url % (host , page) , headers=headers ,verify=False) html = req.content.decode('utf-8') #取得页面 for site in re.findall(regexp , html): ip2hosts.append("http://"+site) if re.search(regexp_next % (page+1 , page+1) , html) is None: return ip2hosts break page += 1 return ip2hosts def same_ip(host): mydomains = [] mydomains.extend(ip2host_get(host)) mydomains.extend(links_ip(host)) mydomains.extend(aizhan(host)) mydomains.extend(chinaz(host)) mydomains = list(set(mydomains)) p = Pool() for host in mydomains: p.apply_async(filter, args=(host,)) p.close() p.join() if __name__=="__main__": if len(sys.argv) == 2: same_ip(sys.argv[1]) else: print ("usage: %s host" % sys.argv[0]) sys.exit(-1)
大家可以发挥添加或者修改任意查询接口。注意是这个里面的一些思路与代码。
相关教程
-
python中pip的使用和修改下载源的实例操作方法
这篇文章主要介绍了python中pip的使用和修改下载源的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
发布时间:2019-11-20
-
python3安装pip3的实例步骤
这次给大家带来python3安装pip3的步奏详解,python3安装pip3的注意事项有哪些,下面就是实战案例,一起来看一下。
发布时间:2020-02-02
-
pip安装Python库时的问题及解决方法总结
这篇文章主要介绍了pip安装Python库时遇到的问题及解决方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
发布时间:2019-11-06
-
windows10安装python3.5 pip3图文详解
这次给大家带来在windows10里python3.5 pip3应该如何安装,在windows10里python3.5 pip3安装的注意事项有哪些,下面就是实战案例,一起来看一下。
发布时间:2020-03-05
-
python自带pip的详解
Python 2.7.9 + 或 Python 3.4+ 以上版本都自带 pip 工具。pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。
发布时间:2020-04-12
-
修改默认的pip版本为对应python2.7的实例详解
今天小编就为大家分享一篇修改默认的pip版本为对应python2.7的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
发布时间:2019-09-11
-
ipython和python区别点总结
IPython与标准Python的最大区别在于,Ipython会对命令提示符的每一行进行编号。python不能在退出保存历史;ipython历史记录自动保存:python不支持tab自动补全;ipython支持tab补全。
发布时间:2020-02-10
-
python pip和anaconda包的安装
今天小编就为大家分享一篇使用anaconda的pip安装第三方python包的操作步骤,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
发布时间:2020-02-11
-
无法使用pip命令安装python第三方库的彻底解决方案
今天小编就为大家分享一篇无法使用pip命令安装python第三方库的原因及解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
发布时间:2019-09-25
-
python中的pip是什么意思
pip是一个以Python计算机程序语言写成的软件包管理系统,他可以安装和管理软件包,另外不少的软件包也可以在“Python软件包索引”(英语:Python Package Index,简称PyPI)中找到。
发布时间:2020-03-14
-
实例分析Python多进程池 multiprocessing Pool的使用
这篇文章主要介绍了Python多进程池 multiprocessing Pool用法,结合实例形式分析了多进程池 multiprocessing Pool相关概念、原理及简单使用技巧,需要的朋友可以参考下
发布时间:2020-03-05
-
Python数据分析与数据化运营(第2版)
大小:14323 MB MPython数据
-
Python面试合集(史上最全面Python面试题和详解)
本文件内含10个文档,文档格式为md,需要用Markdown打开,该软件搜索即可下载。内容如题,全面的Python面试题和详解,需要的朋友可下载试试! 包含:2019 Python最新面试题及答案16道题、110道Python面试题(上)、最常见的 35 个 Python 面试题及答案(2018 版)、整理的最全 python常见面试题(基本必考)等!
大小:141 KBPython面试
-
Python网络爬虫从入门到实践
这本书讲解了如何使用Python编写网络爬虫程序获取互联网上的大数据,包含基础部分、进阶部分和项目实践三个部分,能带领读者从入门到进阶,再到实战,一步步了解爬虫,终写出自己的爬虫程序,欢迎下载
大小:154.1 MBPython网络爬虫电子书
-
Python机器学习:预测分析核心算法
在学习和研究机器学习的时候,面临令人眼花缭乱的算法,机器学习新手往往会不知所措。本书从算法和Python语言实现的角度,帮助读者认识机器学习。 本书专注于两类核心的算法族,即惩罚
大小:22.4 MBPython机器学习电子书
-
实战Python网络爬虫
实战Python网络爬虫 配套源码 从爬虫工具开发设计到动手做开发设计网络爬虫架构 从基本原理到实践活动,从入门到精通,受欢迎网络爬虫关键技术全把握 包含丰富多彩的爬虫工具、库、架构
大小:262 KBPython爬虫电子书
-
零起点Python足彩大数据与机器学习实盘分析
大小:122.4 MBPython数据分析电子书
-
Python网络爬虫实战
大小:51MBPython爬虫