Skip to content

Instantly share code, notes, and snippets.

@martijnvanbeers
Last active December 16, 2015 22:23
Show Gist options
  • Save martijnvanbeers/4e96965cf6dba842a96d to your computer and use it in GitHub Desktop.
Save martijnvanbeers/4e96965cf6dba842a96d to your computer and use it in GitHub Desktop.
geoip mirror list
import GeoIP
import json
geo = GeoIP.new(GeoIP.GEOIP_MEMORY_CACHE | GeoIP.GEOIP_CHECK_CACHE)
with open('mirrors2.json') as data_file:
data = json.load(data_file)
for record in data:
print record
print geo.country_name_by_name(record)
{
"Brazil" : {
"nbtelecom.br" : [
"http://mirror.nbtelecom.com.br/gimp",
"rsync://mirror.nbtelecom.com.br::gimp"
]
},
"Germany" : {
"gimper.net" : [
"http://de-mirror.gimper.net/pub/gimp/"
],
"artfiles.org" : [
"http://artfiles.org/gimp.org/gimp/",
"ftp://artfiles.org/gimp.org/gimp/"
],
"fau.de" : [
"https://ftp.fau.de/gimp/gimp/",
"ftp://ftp.fau.de/gimp/gimp/",
"rsync://ftp.fau.de/gimp/"
]
},
"Japan" : {
"go-parts.com" : [
"http://mirrors.go-parts.com/gimp/",
"ftp://mirrors.go-parts.com/gimp/",
"rsync://mirrors.go-parts.com/mirrors/gimp/"
]
},
"Russia" : {
"go-parts.com" : [
"http://go-parts.com/mirrors-ru/gimp/gimp/",
"ftp://mirrors-ru.go-parts.com/gimp/gimp/",
"rsync://mirrors-ru.go-parts.com/mirrors/gimp/"
]
},
"South Africa" : {
"gimp.afri.cc" : [
"http://gimp.afri.cc/pub/gimp/"
]
},
"United Kingdom" : {
"mirrorservice.org" : [
"http://www.mirrorservice.org/sites/ftp.gimp.org/pub/gimp/",
"ftp://ftp.mirrorservice.org/sites/ftp.gimp.org/pub/gimp/",
"rsync://rsync.mirrorservice.org/ftp.gimp.org/pub/gimp/"
],
"go-parts.com" : [
"http://mirrors-uk.go-parts.com/gimp/",
"ftp://mirrors-uk.go-parts.com/gimp/",
"rsync://mirrors-uk.go-parts.com/mirrors/gimp/"
]
},
"United States" : {
"galaxyverge.com" : [
"http://gimp.galaxyverge.com/"
],
"gimper.net" : [
"http://gimper.net/downloads/pub/gimp/"
],
"hessmo.com" : [
"http://mirro.hessmo.com/gimp/"
],
"hoobly.com" : [
"http://gimp.mirrors.hoobly.com/pub/gimp/"
],
"go-parts.com" : [
"http://go-parts.com/mirrors-usa/gimp/gimp/",
"rsync://mirrors-usa/go-parts.com/mirrors/gimp/"
]
}
}
{
"nbtelecom.com.br" : [
"http://mirror.nbtelecom.com.br/gimp",
"rsync://mirror.nbtelecom.com.br::gimp"
],
"de-mirror.gimper.net" : [
"http://de-mirror.gimper.net/pub/gimp/"
],
"artfiles.org" : [
"http://artfiles.org/gimp.org/gimp/",
"ftp://artfiles.org/gimp.org/gimp/"
],
"fau.de" : [
"https://ftp.fau.de/gimp/gimp/",
"ftp://ftp.fau.de/gimp/gimp/",
"rsync://ftp.fau.de/gimp/"
],
"go-parts.com" : [
"http://mirrors.go-parts.com/gimp/",
"ftp://mirrors.go-parts.com/gimp/",
"rsync://mirrors.go-parts.com/mirrors/gimp/"
],
"mirrors-ru.go-parts.com" : [
"http://go-parts.com/mirrors-ru/gimp/gimp/",
"ftp://mirrors-ru.go-parts.com/gimp/gimp/",
"rsync://mirrors-ru.go-parts.com/mirrors/gimp/"
],
"gimp.afri.cc" : [
"http://gimp.afri.cc/pub/gimp/"
],
"mirrorservice.org" : [
"http://www.mirrorservice.org/sites/ftp.gimp.org/pub/gimp/",
"ftp://ftp.mirrorservice.org/sites/ftp.gimp.org/pub/gimp/",
"rsync://rsync.mirrorservice.org/ftp.gimp.org/pub/gimp/"
],
"mirrors-uk.go-parts.com" : [
"http://mirrors-uk.go-parts.com/gimp/",
"ftp://mirrors-uk.go-parts.com/gimp/",
"rsync://mirrors-uk.go-parts.com/mirrors/gimp/"
],
"galaxyverge.com" : [
"http://gimp.galaxyverge.com/"
],
"gimper.net" : [
"http://gimper.net/downloads/pub/gimp/"
],
"hessmo.com" : [
"http://mirror.hessmo.com/gimp/"
],
"hoobly.com" : [
"http://gimp.mirrors.hoobly.com/pub/gimp/"
],
"mirrors-usa.go-parts.com" : [
"http://go-parts.com/mirrors-usa/gimp/gimp/",
"rsync://mirrors-usa/go-parts.com/mirrors/gimp/"
]
}
@patdavid
Copy link

Could we wrap country.py into a parser for the build system?
This way we could then generate tuples/metadata that the downloads page could capture, parse, and render?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment