全封当然是拨电源就可以了,但这不现实。
基本可以确认,国外知名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()