mirror of
				https://github.com/uklans/cache-domains
				synced 2025-11-04 08:28:53 +01:00 
			
		
		
		
	Merge branch 'master' into master
This commit is contained in:
		
						commit
						bad8789e54
					
				
							
								
								
									
										15
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								README.md
									
									
									
									
									
								
							@ -14,10 +14,9 @@ You can use this list one of two ways:
 | 
				
			|||||||
There is a cache_domains.json file to define CDNs and additional meta deta with the following structure
 | 
					There is a cache_domains.json file to define CDNs and additional meta deta with the following structure
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- cache_domains: Array of cache_domain object
 | 
					- cache_domains: Array of cache_domain object
 | 
				
			||||||
	- name: shortname for the cache domain
 | 
						- name: shortname for the cache domain. Should match `^[0-9A-Za-z]$`
 | 
				
			||||||
	- description: a longer description to aid others in identifying what this domain does (not all users of this repo will want to enable all caches)
 | 
						- description: a longer description to aid others in identifying what this domain does (not all users of this repo will want to enable all caches)
 | 
				
			||||||
	- notes: implementation specific notes which may be useful for other users
 | 
						- notes: implementation specific notes which may be useful for other users
 | 
				
			||||||
	- mixed_content: true if this domain hosts mixed https and http content (a straight dns injection is unlikely to work in this case). Assumed to be false if undefined
 | 
					 | 
				
			||||||
	- domain_files: array of files within the repo assosciated to the cdn. Most cdn's only need one file
 | 
						- domain_files: array of files within the repo assosciated to the cdn. Most cdn's only need one file
 | 
				
			||||||
	- Example domain entry for origin
 | 
						- Example domain entry for origin
 | 
				
			||||||
```json
 | 
					```json
 | 
				
			||||||
@ -27,7 +26,6 @@ There is a cache_domains.json file to define CDNs and additional meta deta with
 | 
				
			|||||||
			"name": "origin",
 | 
								"name": "origin",
 | 
				
			||||||
			"description": "CDN for origin",
 | 
								"description": "CDN for origin",
 | 
				
			||||||
			"notes": "Should be enabled for HTTP traffic only or with a HTTPS proxy else origin client download fails",
 | 
								"notes": "Should be enabled for HTTP traffic only or with a HTTPS proxy else origin client download fails",
 | 
				
			||||||
			"mixed_content": true,
 | 
					 | 
				
			||||||
			"domain_files": ["origin.txt"]
 | 
								"domain_files": ["origin.txt"]
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	]
 | 
						]
 | 
				
			||||||
@ -43,6 +41,7 @@ There is a separate file for each cacheable service. Some notes on formatting:
 | 
				
			|||||||
  - Wildcards are permitted as per below
 | 
					  - Wildcards are permitted as per below
 | 
				
			||||||
  - Lines starting with a # will be treated as a comment.
 | 
					  - Lines starting with a # will be treated as a comment.
 | 
				
			||||||
  - Files must end with an empty newline.
 | 
					  - Files must end with an empty newline.
 | 
				
			||||||
 | 
					  - File names must match the regular expression `^[0-9A-Za-z].txt`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#### Wildcards
 | 
					#### Wildcards
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -65,10 +64,20 @@ Please fork this repository and submit pull requests if you have any extra hostn
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
If the CDN you are adding does not already exist please remember to add an entry within cache_domains.json as well as a new .txt file
 | 
					If the CDN you are adding does not already exist please remember to add an entry within cache_domains.json as well as a new .txt file
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Uncacheable CDNs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Certain CDNs are not suitable for inclusion on this list because the content is entirely delivered over HTTPS and thus cannot be cached.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					For a list of currently identified uncacheable CDNs please see these issues: https://github.com/uklans/cache-domains/issues?q=is%3Aissue+is%3Aopen+label%3Ahttps-cantfix
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Issues and Feedback
 | 
					## Issues and Feedback
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Please raise all issues and feedback on GitHub at [uklans/cache-domains](https://github.com/uklans/cache-domains/issues).
 | 
					Please raise all issues and feedback on GitHub at [uklans/cache-domains](https://github.com/uklans/cache-domains/issues).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Useful Information
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					There are a few useful anecdotes on cache domains usage in some old issues https://github.com/uklans/cache-domains/issues?q=is%3Aissue+is%3Aclosed+label%3Afor-reference-only
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## License
 | 
					## License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The MIT License (MIT)
 | 
					The MIT License (MIT)
 | 
				
			||||||
 | 
				
			|||||||
@ -1,4 +1,4 @@
 | 
				
			|||||||
assetcdn.101.arenanetworks.com
 | 
					assetcdn.101.arenanetworks.com
 | 
				
			||||||
assetcdn.102.arenanetworks.com
 | 
					assetcdn.102.arenanetworks.com
 | 
				
			||||||
assetcdn.103.arenanetworks.com
 | 
					assetcdn.103.arenanetworks.com
 | 
				
			||||||
live.patcher.bladeandsoul.com
 | 
					live.patcher.bladeandsoul.com
 | 
				
			||||||
 | 
				
			|||||||
@ -20,6 +20,11 @@
 | 
				
			|||||||
			"description": "Daybreak games CDN",
 | 
								"description": "Daybreak games CDN",
 | 
				
			||||||
			"domain_files": ["daybreak.txt"]
 | 
								"domain_files": ["daybreak.txt"]
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								"name": "epicgames",
 | 
				
			||||||
 | 
								"description": "CDN for Epic Games",
 | 
				
			||||||
 | 
								"domain_files": ["epicgames.txt"]
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			"name": "frontier",
 | 
								"name": "frontier",
 | 
				
			||||||
			"description": "CDN for frontier games",
 | 
								"description": "CDN for frontier games",
 | 
				
			||||||
@ -36,16 +41,14 @@
 | 
				
			|||||||
			"domain_files": ["nexusmods.txt"]
 | 
								"domain_files": ["nexusmods.txt"]
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			"name": "nintendo",
 | 
								"name": "neverwinter",
 | 
				
			||||||
			"description": "CDN for nintendo (swtich)",
 | 
								"description": "Cryptic CDN for Neverwinter",
 | 
				
			||||||
			"domain_files": ["nintendo.txt"]
 | 
								"domain_files": ["neverwinter.txt"]
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			"name": "origin",
 | 
								"name": "nintendo",
 | 
				
			||||||
			"description": "CDN for origin",
 | 
								"description": "CDN for Nintendo consoles and download servers",
 | 
				
			||||||
			"notes": "Should be enabled for HTTP traffic only or with a HTTPS proxy else origin client download fails",
 | 
								"domain_files": ["nintendo.txt"]
 | 
				
			||||||
			"mixed_content": true,
 | 
					 | 
				
			||||||
			"domain_files": ["origin.txt"]
 | 
					 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			"name": "renegadex",
 | 
								"name": "renegadex",
 | 
				
			||||||
@ -82,10 +85,20 @@
 | 
				
			|||||||
			"description": "CDN for uplay downloader",
 | 
								"description": "CDN for uplay downloader",
 | 
				
			||||||
			"domain_files": ["uplay.txt"]
 | 
								"domain_files": ["uplay.txt"]
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								"name": "teso",
 | 
				
			||||||
 | 
								"description": "CDN for The Elder Scrolls Online",
 | 
				
			||||||
 | 
								"domain_files": ["teso.txt"]
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			"name": "twitch",
 | 
								"name": "twitch",
 | 
				
			||||||
			"description": "CDN for twitch games / mods and addons",
 | 
								"description": "CDN for twitch games / mods and addons",
 | 
				
			||||||
			"domain_files": ["twitchapp.txt"]
 | 
								"domain_files": ["twitch.txt"]
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								"name": "warframe",
 | 
				
			||||||
 | 
								"description": "CDN for Warframe",
 | 
				
			||||||
 | 
								"domain_files": ["warframe.txt"]
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			"name": "wargaming",
 | 
								"name": "wargaming",
 | 
				
			||||||
@ -100,9 +113,7 @@
 | 
				
			|||||||
		{
 | 
							{
 | 
				
			||||||
			"name": "xboxlive",
 | 
								"name": "xboxlive",
 | 
				
			||||||
			"description": "CDN for xboxlive",
 | 
								"description": "CDN for xboxlive",
 | 
				
			||||||
			"domain_files": ["xboxlive.txt"],
 | 
								"domain_files": ["xboxlive.txt"]
 | 
				
			||||||
			"mixed_content": true
 | 
					 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	]
 | 
						]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										5
									
								
								epicgames.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								epicgames.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					epicgames-download1.akamaized.net
 | 
				
			||||||
 | 
					download.epicgames.com
 | 
				
			||||||
 | 
					download2.epicgames.com
 | 
				
			||||||
 | 
					download3.epicgames.com
 | 
				
			||||||
 | 
					download4.epicgames.com
 | 
				
			||||||
@ -1 +1 @@
 | 
				
			|||||||
cdn.zaonce.net
 | 
					cdn.zaonce.net
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										1
									
								
								neverwinter.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								neverwinter.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					level3.nwhttppatch.crypticstudios.com
 | 
				
			||||||
@ -1 +1 @@
 | 
				
			|||||||
filedelivery.nexusmods.com
 | 
					filedelivery.nexusmods.com
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										15
									
								
								nintendo.txt
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								nintendo.txt
									
									
									
									
									
								
							@ -1,8 +1,13 @@
 | 
				
			|||||||
ccs.cdn.wup.shop.nintendo.com
 | 
					ccs.cdn.wup.shop.nintendo.com
 | 
				
			||||||
pushmo.hac.lp1.eshop.nintendo.net
 | 
					ccs.cdn.wup.shop.nintendo.net
 | 
				
			||||||
 | 
					ccs.cdn.wup.shop.nintendo.net.edgesuite.net
 | 
				
			||||||
 | 
					geisha-wup.cdn.nintendo.net
 | 
				
			||||||
 | 
					geisha-wup.cdn.nintendo.net.edgekey.net
 | 
				
			||||||
 | 
					idbe-wup.cdn.nintendo.net
 | 
				
			||||||
 | 
					idbe-wup.cdn.nintendo.net.edgekey.net
 | 
				
			||||||
ecs-lp1.hac.shop.nintendo.net
 | 
					ecs-lp1.hac.shop.nintendo.net
 | 
				
			||||||
receive-lp1.dg.srv.nintendo.net
 | 
					receive-lp1.dg.srv.nintendo.net
 | 
				
			||||||
aqua.hac.lp1.d4c.nintendo.net
 | 
					*.wup.shop.nintendo.net
 | 
				
			||||||
atum.hac.lp1.d4c.nintendo.net
 | 
					*.wup.eshop.nintendo.net
 | 
				
			||||||
bugyo.hac.lp1.eshop.nintendo.net
 | 
					*.hac.lp1.d4c.nintendo.net
 | 
				
			||||||
tagaya.hac.lp1.eshop.nintendo.net
 | 
					*.hac.lp1.eshop.nintendo.net
 | 
				
			||||||
 | 
				
			|||||||
@ -1,6 +0,0 @@
 | 
				
			|||||||
# WARNING:  Origin has been seen downloading https client downloads on origin-a.akamaihd.net.  A solution should be in place to forward https to the origin server (eg sniproxy)
 | 
					 | 
				
			||||||
origin-a.akamaihd.net
 | 
					 | 
				
			||||||
akamai.cdn.ea.com
 | 
					 | 
				
			||||||
lvlt.cdn.ea.com
 | 
					 | 
				
			||||||
river.data.ea.com
 | 
					 | 
				
			||||||
origin-a.akamaihd.net.edgesuite.net
 | 
					 | 
				
			||||||
@ -9,4 +9,4 @@ rxp-sg.cncirc.net
 | 
				
			|||||||
rxp-la.cncirc.net
 | 
					rxp-la.cncirc.net
 | 
				
			||||||
rxp-fin.cncirc.net
 | 
					rxp-fin.cncirc.net
 | 
				
			||||||
denver1.renegade-x.com
 | 
					denver1.renegade-x.com
 | 
				
			||||||
seattle1.renegade-x.com
 | 
					seattle1.renegade-x.com
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										2
									
								
								riot.txt
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								riot.txt
									
									
									
									
									
								
							@ -2,4 +2,4 @@ l3cdn.riotgames.com
 | 
				
			|||||||
worldwide.l3cdn.riotgames.com
 | 
					worldwide.l3cdn.riotgames.com
 | 
				
			||||||
riotgamespatcher-a.akamaihd.net
 | 
					riotgamespatcher-a.akamaihd.net
 | 
				
			||||||
riotgamespatcher-a.akamaihd.net.edgesuite.net
 | 
					riotgamespatcher-a.akamaihd.net.edgesuite.net
 | 
				
			||||||
lol.dyn.riotcdn.net
 | 
					*.dyn.riotcdn.net
 | 
				
			||||||
 | 
				
			|||||||
@ -1 +1 @@
 | 
				
			|||||||
patches.rockstargames.com
 | 
					patches.rockstargames.com
 | 
				
			||||||
 | 
				
			|||||||
@ -1,6 +1,6 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
	"ips": {
 | 
						"ips": {
 | 
				
			||||||
		"steam":	"10.10.3.11",
 | 
							"steam":	["10.10.3.10", "10.10.3.11"],
 | 
				
			||||||
		"origin":	"10.10.3.12",
 | 
							"origin":	"10.10.3.12",
 | 
				
			||||||
		"blizzard":	"10.10.3.13",
 | 
							"blizzard":	"10.10.3.13",
 | 
				
			||||||
		"windows":	"10.10.3.14",
 | 
							"windows":	"10.10.3.14",
 | 
				
			||||||
 | 
				
			|||||||
@ -16,7 +16,7 @@ fi
 | 
				
			|||||||
cachenamedefault="disabled"
 | 
					cachenamedefault="disabled"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
while read line; do
 | 
					while read line; do
 | 
				
			||||||
        ip=$(jq -r ".ips[\"${line}\"]" config.json)
 | 
					        ip=$(jq ".ips[\"${line}\"]" config.json)
 | 
				
			||||||
        declare "cacheip$line"="$ip"
 | 
					        declare "cacheip$line"="$ip"
 | 
				
			||||||
done <<< $(jq -r '.ips | to_entries[] | .key' config.json)
 | 
					done <<< $(jq -r '.ips | to_entries[] | .key' config.json)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -39,7 +39,7 @@ while read entry; do
 | 
				
			|||||||
                continue;
 | 
					                continue;
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
        cacheipname="cacheip${!cachename}"
 | 
					        cacheipname="cacheip${!cachename}"
 | 
				
			||||||
        cacheip=${!cacheipname}
 | 
					        cacheip=$(jq -r 'if type == "array" then .[] else . end' <<< ${!cacheipname} | xargs)
 | 
				
			||||||
        while read fileid; do
 | 
					        while read fileid; do
 | 
				
			||||||
                while read filename; do
 | 
					                while read filename; do
 | 
				
			||||||
                        destfilename=$(echo $filename | sed -e 's/txt/conf/')
 | 
					                        destfilename=$(echo $filename | sed -e 's/txt/conf/')
 | 
				
			||||||
@ -54,7 +54,9 @@ while read entry; do
 | 
				
			|||||||
                                if grep -q "$parsed" $outputfile; then
 | 
					                                if grep -q "$parsed" $outputfile; then
 | 
				
			||||||
                                        continue
 | 
					                                        continue
 | 
				
			||||||
                                fi
 | 
					                                fi
 | 
				
			||||||
                                echo "address=/${parsed}/${cacheip}" >> $outputfile
 | 
					                                for i in ${cacheip}; do
 | 
				
			||||||
 | 
					                                        echo "address=/${parsed}/${i}" >> $outputfile
 | 
				
			||||||
 | 
					                                done
 | 
				
			||||||
                        done <<< $(cat ${basedir}/$filename);
 | 
					                        done <<< $(cat ${basedir}/$filename);
 | 
				
			||||||
                done <<< $(jq -r ".cache_domains[$entry].domain_files[$fileid]" $path)
 | 
					                done <<< $(jq -r ".cache_domains[$entry].domain_files[$fileid]" $path)
 | 
				
			||||||
        done <<< $(jq -r ".cache_domains[$entry].domain_files | to_entries[] | .key" $path)
 | 
					        done <<< $(jq -r ".cache_domains[$entry].domain_files | to_entries[] | .key" $path)
 | 
				
			||||||
 | 
				
			|||||||
@ -16,7 +16,7 @@ fi
 | 
				
			|||||||
cachenamedefault="disabled"
 | 
					cachenamedefault="disabled"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
while read line; do 
 | 
					while read line; do 
 | 
				
			||||||
	ip=$(jq -r ".ips[\"${line}\"]" config.json)
 | 
						ip=$(jq ".ips[\"${line}\"]" config.json)
 | 
				
			||||||
	declare "cacheip$line"="$ip"
 | 
						declare "cacheip$line"="$ip"
 | 
				
			||||||
done <<< $(jq -r '.ips | to_entries[] | .key' config.json)
 | 
					done <<< $(jq -r '.ips | to_entries[] | .key' config.json)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -39,7 +39,7 @@ while read entry; do
 | 
				
			|||||||
		continue;
 | 
							continue;
 | 
				
			||||||
	fi
 | 
						fi
 | 
				
			||||||
	cacheipname="cacheip${!cachename}"
 | 
						cacheipname="cacheip${!cachename}"
 | 
				
			||||||
	cacheip=${!cacheipname}
 | 
						cacheip=$(jq -r 'if type == "array" then .[] else . end' <<< ${!cacheipname} | xargs)
 | 
				
			||||||
	while read fileid; do
 | 
						while read fileid; do
 | 
				
			||||||
		while read filename; do
 | 
							while read filename; do
 | 
				
			||||||
			destfilename=$(echo $filename | sed -e 's/txt/conf/')
 | 
								destfilename=$(echo $filename | sed -e 's/txt/conf/')
 | 
				
			||||||
@ -56,7 +56,9 @@ while read entry; do
 | 
				
			|||||||
					continue
 | 
										continue
 | 
				
			||||||
				fi
 | 
									fi
 | 
				
			||||||
				echo "  local-zone: \"${parsed}\" redirect" >> $outputfile
 | 
									echo "  local-zone: \"${parsed}\" redirect" >> $outputfile
 | 
				
			||||||
				echo "  local-data: \"${parsed} 30 IN A ${cacheip}\"" >> $outputfile
 | 
									for i in ${cacheip}; do
 | 
				
			||||||
 | 
										echo "  local-data: \"${parsed} 30 IN A ${i}\"" >> $outputfile
 | 
				
			||||||
 | 
									done
 | 
				
			||||||
			done <<< $(cat ${basedir}/$filename);
 | 
								done <<< $(cat ${basedir}/$filename);
 | 
				
			||||||
		done <<< $(jq -r ".cache_domains[$entry].domain_files[$fileid]" $path)
 | 
							done <<< $(jq -r ".cache_domains[$entry].domain_files[$fileid]" $path)
 | 
				
			||||||
	done <<< $(jq -r ".cache_domains[$entry].domain_files | to_entries[] | .key" $path)
 | 
						done <<< $(jq -r ".cache_domains[$entry].domain_files | to_entries[] | .key" $path)
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										2
									
								
								sony.txt
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								sony.txt
									
									
									
									
									
								
							@ -1,3 +1,3 @@
 | 
				
			|||||||
pls.patch.station.sony.com
 | 
					pls.patch.station.sony.com
 | 
				
			||||||
gs2.ww.prod.dl.playstation.net
 | 
					gs2.ww.prod.dl.playstation.net
 | 
				
			||||||
gs2.sonycoment.loris-e.llnwd.net
 | 
					gs2.sonycoment.loris-e.llnwd.net
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										1
									
								
								warframe.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								warframe.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					content.warframe.com
 | 
				
			||||||
@ -6,3 +6,8 @@ dl.delivery.mp.microsoft.com
 | 
				
			|||||||
*.update.microsoft.com
 | 
					*.update.microsoft.com
 | 
				
			||||||
*.do.dsp.mp.microsoft.com
 | 
					*.do.dsp.mp.microsoft.com
 | 
				
			||||||
*.microsoft.com.edgesuite.net
 | 
					*.microsoft.com.edgesuite.net
 | 
				
			||||||
 | 
					amupdatedl.microsoft.com
 | 
				
			||||||
 | 
					amupdatedl2.microsoft.com
 | 
				
			||||||
 | 
					amupdatedl3.microsoft.com
 | 
				
			||||||
 | 
					amupdatedl4.microsoft.com
 | 
				
			||||||
 | 
					amupdatedl5.microsoft.com
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user