关于IPV6DNS,基本上IPV6是相当难封的,特别是部分封时,相当有难度。

全封当然是拨电源就可以了,但这不现实。

基本可以确认,国外知名DNS全被拦截了。

现在对IPV6主要是在DNS上,我用过很多方法,也用过很多网IPV6地址的DNS结果,这些DNS服务器所找不到google的ipv6地址。太假了。是暗协议,还是DNS拦截?

对付这个用远程DNS是一种方法,但会减慢网速。用本地DNS吧。但google的可用ipv6地址是在变的,因为封,所以变。这就要更新。用远程DNS是一种好方法。但因为DNS拦截,所有对比较有名的网站的DNS访问都会被代替。不过我找到了一些网上可以查找IPV6地址的。因为走的不是DNS报文,而HTTPS报文,所以还是可用的。

用它,加上以前的google的hosts文件,自已写个代码,更新google的ipv6地址吧。路由器中的DNS设置就还有114吧,这个速度快。先找hosts再找114,足用了。

google的DNS服务8.8.8.8找到的ipv 地址是根据记问的IP然后给出的最快的google 服务器地址。同样的域名,地址可能我很多。最近google好拟把它的服务配成了,直接通过IPV6不可访问。只有通过域名才可以。

最近google地地址又换封锁了一批,自已写的从网页上下ipv6的python代码是收集了一把IPV6地址,都能ping通。但youtube还是访问不了。个别地址,从这个网页上找不到IPV6。直接给个python2。7的代码吧。因为是有go-agent开始用python的,所以只用2。7主 3以上的不相容。代码是把我以前写的下载m3u8直播地址的东西改的。

需要注意的是:

'Accept-Encoding': 'deflate, br',
deflate,chrome是能解gzip格式的,python就不要这样了,用deflate,要不返回内容乱码。我本以为这个网页要什么cookie之类的。结果代码比登录代码简单多了。只是这个网站访问多了会封IP,这个网站还好只能是ipv4的,个人用户同,拨号上网,封ipv4,没大影响。看上去对google的ipv6访问架构还是不太了解,或者封网封住要害了,能ping通,youtube就是不可用。最怪的是,电脑与手机,有时google也连不上。导向式快封吗?封youtube我还能理解,要是google也封了,现在的好多android 开始,不连网玩不了啊。

调用方法如下。其中hosts文件 是主机文件,asc编码,“IPV6地址 (空格) 域名”这样的东西就是对其域名,在网页上找对应的IPV6地址。代码改了一上午,下午用新的IPV6地址试了一下,google没什么问题,youtube上不了。主页能打开,没图片或者没视频。关联的IPV6地址不可有。具体是什么地址,我没找出来,对youtube我应用上不是特别需要。有了更好,没了也不想花太长时间。有谁知道原因的话,给留一下言。

>python (下面的py文件名)   (hosts文件名)

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# coding:utf-8
#  tvtest.py
#  测试m3u8的可下载性,基本的直播可用性测试。
#  Copyright 2018 ququ
import datetime
import sys
import urllib
import urllib2
import urlparse
import time
import os
import re
import pprint
import json
from pyquery import PyQuery as pq

                        
headers = {
            'Host': 'mxtoolbox.com',
            'Origin': 'https://mxtoolbox.com',
            'X-Requested-With': 'XMLHttpRequest',
            'MasterTempAuthorization': 'f67aac26-fe12-4a9c-b1c2-771db0816033',
            'Content-Type': 'application/json; charset=UTF-8',
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',
            'Accept': 'application/json, text/javascript, */*; q=0.01',
            'Accept-Encoding': 'deflate, br',
            'Accept-Language': 'en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7',
            'Cookie': ''
            }
#urlDNSlookup 是在线DNS网站,没事可以自已多找找然后按网站返回数据改代码。
urlDNSlookup='https://mxtoolbox.com/Public/Lookup.aspx/DoLookup2'
def gethosts():
        if len(sys.argv) != 2:
            print("arg error, " + sys.argv[0] + " input hosts file");  
            exit(1)
        input_file = sys.argv[1];
        hinFile = open(input_file,"r+"); 
        print ('get ipv6 for the hosts in '+input_file )
        output_file=input_file+"-new"
        error_file=input_file+"-err"
        houtFile = open(output_file, "w")
        herrorFile = open(error_file, "w")
        
        L=0
        FileList = hinFile.readlines()
        FileList2=[]
        for Line0 in FileList:
            if Line0[0]!='#' and len(Line0) >2:
                position = Line0.index(' ')
                Line1 = Line0[position:]
                #print(position)
                position2 = Line1.find('#')
                #print(position2)
                if position2 > 0:
                    strhost = Line1[1:position2-1]
                else:
                    strhost = Line1[1:len(Line1)-1]
                #print("the host is: %s: " +strhost)
                url = urlDNSlookup
                dataraw ='{"inputText":"aaaa:'+strhost+'","resultIndex":4}'
                #data = urllib.urlencode(dataraw)
                print(dataraw)
                #print(data)
                try:
                    #response = urllib2.urlopen('https://mxtoolbox.com/')
                    request = urllib2.Request(url, data=dataraw, headers = headers)
                    #request = urllib2.Request(url,headers = headers)
                    response = urllib2.urlopen(request)
                    text = response.read()
                    #text = unicode(response.read(),"utf-8")
                    #找tAAAA\\t    
                    p1 = text.find("AAAA\\\\t")
                    if p1 > 0:
                        p2 = text.find(",",p1)
                        stripv6=text[p1+7:p2]
                        Lineout=stripv6+' '+strhost+'\n'
                        houtFile.writelines(Lineout)
                    else:
                        stripv6="error"
                        Lineout=stripv6+' '+strhost+'\n'
                        herrorFile.writelines(Lineout)
                    print(Lineout)                    
                except urllib2.URLError as e:
                    print "Error: %s, url: %s" % (e,url)

        herrorFile.close()
        houtFile.close()
        hinFile.close()
        print('done\n')
        
if __name__ == '__main__':
    gethosts()
 

你可能感兴趣的:(普通)