Python實(shí)現(xiàn)獲取域名所用服務(wù)器的真實(shí)IP
更新時(shí)間:2015年10月25日 12:12:24 投稿:hebedich
本文是給大家分享的使用python獲取到域名所在服務(wù)器的真實(shí)IP,原因是現(xiàn)在很多的網(wǎng)站都使用了CDN,大家很難直接查到域名的服務(wù)器的IP,本文是使用了一個(gè)巧妙的方法,詳情請仔細(xì)看看下文吧
本來是要寫個(gè)程序用的,沒寫完不寫了,這一部分就貼出來吧
驗(yàn)證域名和IP
class JianKong():
'''查詢IDC信息,封ip和過白名單'''
def __init__(self):
pass
@classmethod
def ip_verify(cls,str):
'驗(yàn)證IP地址規(guī)范'
pattern=re.compile('(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])')
s=pattern.findall(str)
if len(s)>0:
ip=s[0][0]+'.'+s[0][1]+'.'+s[0][2]+'.'+s[0][3]
return ip
else:
print 'IP格式不正確'#彈窗提醒
return ''
@classmethod
def domain_verify(cls,domainStr):
'驗(yàn)證域名規(guī)范,返回合法域名列表'
domainList=[]
file=open('c:\domain.txt','r')
domainType=file.readlines()
#去重
domainType=list(set(domainType))
#print domainType
file.close()
#file=['com','ac','com.cn','net'+'']
for line in domainType:
#文件中動(dòng)態(tài)讀取每個(gè)頂級(jí)域名進(jìn)行匹配
line=line.strip()
pattern=re.compile('([a-z0-9][a-z0-9\-]*?\.'+line+')(?:\s|$)+',re.S)
#例如[a-z0-9][a-z0-9\-]*?\.com.cn(?:\s|$)+ 中(?:\s|$)表示域名后綴后面必須是空白符或者字符結(jié)束(?:)表示括號(hào)不用于分組功能
#防止.com.cn先匹配到.com即停止匹配導(dǎo)致錯(cuò)誤,或者匹配到.comc多了字符
result=pattern.findall(domainStr)
if len(result)>0:
#正確結(jié)果添加到返回列表
domainList=domainList+result
#去重
domainList=list(set(domainList))
newList=[]
for d in domainList:
if d not in domainType and d+'\n' not in domainType:
newList.append(d)
return newList
@classmethod
def getDomainType(cls):
'從工信部網(wǎng)站獲取所有合法域名后綴'
file=open('c:/domain.txt','w')
p=re.compile('class=\"by2\">\.(.*?)\ </td>', re.S)
for i in range(1,23):
data='domainName=&domainBlur=0&page.pageSize=20&pageNo='+str(i)+'&jumpPageNo='+str(i)
header={'Host':'www.miitbeian.gov.cn','Origin':'http://www.miitbeian.gov.cn','User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 UBrowser/5.5.6125.14 Safari/537.36','Referer':'http://www.miitbeian.gov.cn/basecode/query/queryDomain.action;jsessionid=HSTRWpLZbR0cX4vFkDpnpbNBYyRl4GwW1fxpyhdyc0fcfhkvJTBV!1139295987'}
url='http://www.miitbeian.gov.cn/basecode/query/queryDomain.action;jsessionid=HSTRWpLZbR0cX4vFkDpnpbNBYyRl4GwW1fxpyhdyc0fcfhkvJTBV!1139295987'
request=urllib2.Request(url,data,header)
response=urllib2.urlopen(request)
recv=response.read()
s=p.findall(recv)
#print s
#去重
s=list(set(s))
for y in s:
file.write(y+'\n')
file.flush()
#print str(i)+' '+y
file.close()
print '完畢'#彈窗完成
相關(guān)文章
淺談pymysql查詢語句中帶有in時(shí)傳遞參數(shù)的問題
這篇文章主要介紹了淺談pymysql查詢語句中帶有in時(shí)傳遞參數(shù)的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06
Python調(diào)用騰訊云短信服務(wù)發(fā)送手機(jī)短信
這篇文章主要為大家介紹了Python調(diào)用騰訊云短信服務(wù)發(fā)送手機(jī)短信,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
簡單分析Python中用fork()函數(shù)生成的子進(jìn)程
這篇文章主要介紹了Python中用fork()函數(shù)生成的子進(jìn)程,分析子進(jìn)程與父進(jìn)程的執(zhí)行順序,需要的朋友可以參考下2015-05-05
python實(shí)現(xiàn)將pvr格式轉(zhuǎn)換成pvr.ccz的方法
這篇文章主要介紹了python實(shí)現(xiàn)將pvr格式轉(zhuǎn)換成pvr.ccz的方法,涉及Python實(shí)現(xiàn)格式轉(zhuǎn)換的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-04-04
Java實(shí)現(xiàn)的執(zhí)行python腳本工具類示例【使用jython.jar】
這篇文章主要介紹了Java實(shí)現(xiàn)的執(zhí)行python腳本工具類,結(jié)合實(shí)例形式分析了java使用jython.jar執(zhí)行Python腳本的具體操作技巧,需要的朋友可以參考下2018-03-03
Python中判斷語句入門指南(if?elif?else語句)
if elif else語句是Python中的控制語句,用于根據(jù)條件執(zhí)行不同的操作,下面這篇文章主要給大家介紹了關(guān)于Python中判斷語句入門指南(if?elif?else語句)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05
pytorch中LN(LayerNorm)及Relu和其變相的輸出操作
這篇文章主要介紹了pytorch中LN(LayerNorm)及Relu和其變相的輸出操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05

