From: Grant Slater Date: Thu, 16 May 2024 01:55:43 +0000 (+0100) Subject: Move otrs to naga X-Git-Url: https://git.openstreetmap.org/dns.git/commitdiff_plain/HEAD?hp=b9c94cf54852ff81544d5746c87a5f2921004a6f Move otrs to naga --- diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..2731998 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,10 @@ +# editorconfig.org +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_trailing_newline = true diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..438cb6f --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,7 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + # Check for updates to GitHub Actions every weekday + interval: "daily" diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml new file mode 100644 index 0000000..cf4d39f --- /dev/null +++ b/.github/workflows/check.yml @@ -0,0 +1,40 @@ +name: dnscontrol check + +on: + - push + - pull_request + +# concurrency: +# group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} +# cancel-in-progress: true + +jobs: + check: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install -y --no-install-recommends \ + make \ + libxml-treebuilder-perl \ + libyaml-libyaml-perl \ + libyaml-perl \ + libjson-xs-perl \ + gh + + - name: Install dnscontrol + env: + GH_TOKEN: ${{ github.token }} + run: | + arch=$(arch | sed s/aarch64/arm64/ | sed s/x86_64/amd64/) \ + && gh release download --repo https://github.com/StackExchange/dnscontrol --pattern "dnscontrol-*.${arch}.deb" --output /tmp/dnscontrol.deb \ + && sudo apt install /tmp/dnscontrol.deb -y + + - name: Run Check + run: | + make check \ No newline at end of file diff --git a/.gitignore b/.gitignore index 02a0651..35e7a32 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ -data/ +creds.json gdns/ +include/ json/ kml/ origins/ diff --git a/Dockerfile b/Dockerfile index c987603..8738966 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,13 +3,23 @@ FROM debian:stable RUN apt-get update && apt-get install -y --no-install-recommends \ make \ libxml-treebuilder-perl \ + libyaml-libyaml-perl \ libyaml-perl \ libjson-xs-perl \ jq \ - less + less \ + curl \ + ca-certificates + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +RUN arch=$(arch | sed s/aarch64/arm64/ | sed s/x86_64/amd64/) \ + && curl -fsSL https://github.com/StackExchange/dnscontrol/releases/download/v4.1.0/dnscontrol-4.1.0.${arch}.deb -o /tmp/dnscontrol.deb \ + && apt install /tmp/dnscontrol.deb -y WORKDIR /dns ADD . . -RUN make VOLUME ["/dns/data"] + +CMD ["make", "check"] diff --git a/Makefile b/Makefile index 4cc2d7c..af5e109 100644 --- a/Makefile +++ b/Makefile @@ -1,70 +1,39 @@ -all: data/openstreetmap.org data/openstreetmap.com data/openstreetmap.net \ - data/openstreetmap.ca data/openstreetmap.eu data/openstreetmap.pro \ - data/openstreetmaps.org data/osm.org data/openmaps.org \ - data/openstreetmap.io data/osm.io \ - data/openworldmap.org data/freeosm.org data/open-maps.org data/open-maps.com data/osmbugs.org \ - data/openstreetmap.uk data/openstreetmap.org.uk data/openstreetmap.co.uk \ - data/openstreetmap.org.za data/osm.org.za \ - data/osmfoundation.org \ - data/stateofthemap.org data/stateofthemap.com data/sotm.org \ - data/stateofthemap.eu \ - data/opengeodata.org \ - data/switch2osm.org data/switch2osm.com \ - data/tile.openstreetmap.org \ - data/render.openstreetmap.org +preview: check preview_dnscontrol -clean: - rm -f data/* json/* origins/* +preview_dnscontrol: check_dnscontrol sshfp gdns + dnscontrol preview -update: update_bytemark update_geodns +check: check_dnscontrol -update_bytemark: all - bin/update +check_dnscontrol: sshfp gdns + dnscontrol check -update_geodns: all - parallel --will-cite rsync --quiet --recursive gdns/ {}::geodns ::: ${GEODNS_SERVERS} +update: update_dnscontrol update_geodns -lib/countries.xml: - curl -s -o $@ http://api.geonames.org/countryInfo?username=demo +update_primary: update_dnscontrol_primary update_geodns + +update_dnscontrol: sshfp gdns + dnscontrol push + +update_dnscontrol_primary: sshfp gdns + dnscontrol push --domains openstreetmap.org -data/openstreetmap.org: src/openstreetmap -data/openstreetmap.com: src/openstreetmap -data/openstreetmap.net: src/openstreetmap -data/openstreetmap.ca: src/openstreetmap -data/openstreetmap.eu: src/openstreetmap -data/openstreetmap.pro: src/openstreetmap -data/openstreetmaps.org: src/openstreetmap -data/osm.org: src/openstreetmap -data/openmaps.org: src/openstreetmap -data/openstreetmap.io: src/openstreetmap -data/osm.io: src/openstreetmap -data/openworldmap.org: src/openstreetmap -data/freeosm.org: src/openstreetmap -data/open-maps.org: src/openstreetmap -data/open-maps.com: src/openstreetmap -data/osmbugs.org: src/openstreetmap -data/openstreetmap.uk: src/openstreetmap-uk -data/openstreetmap.org.uk: src/openstreetmap-uk -data/openstreetmap.co.uk: src/openstreetmap-uk -data/openstreetmap.org.za: src/openstreetmap-za -data/osm.org.za: src/openstreetmap-za -data/osmfoundation.org: src/osmfoundation -data/stateofthemap.org: src/stateofthemap -data/stateofthemap.com: src/stateofthemap -data/sotm.org: src/stateofthemap -data/opengeodata.org: src/opengeodata -data/switch2osm.org: src/switch2osm -data/switch2osm.com: src/switch2osm -data/stateofthemap.eu: src/stateofthemap-eu +update_geodns: gdns + parallel --will-cite rsync --quiet --recursive --checksum gdns/ {}::geodns ::: ${GEODNS_SERVERS} -origins/tile.openstreetmap.yml: bin/mkcountries lib/countries.xml bandwidth/tile.openstreetmap.yml - bin/mkcountries bandwidth/tile.openstreetmap.yml origins/tile.openstreetmap.yml +sshfp: + bin/mksshfp -data/tile.openstreetmap.org json/tile.openstreetmap.org.json origins/render.openstreetmap.yml: bin/mkgeo origins/tile.openstreetmap.yml src/tile.openstreetmap - bin/mkgeo origins/tile.openstreetmap.yml src/tile.openstreetmap tile.openstreetmap.org origins/render.openstreetmap.yml tile +gdns: gdns_nominatim -data/render.openstreetmap.org json/render.openstreetmap.org.json: bin/mkgeo origins/render.openstreetmap.yml src/render.openstreetmap - bin/mkgeo origins/render.openstreetmap.yml src/render.openstreetmap render.openstreetmap.org origins/total.openstreetmap.yml +gdns_nominatim: lib/countries.xml origins/nominatim.openstreetmap.yml + bin/mkgeo origins/nominatim.openstreetmap.yml src/nominatim.openstreetmap.yml nominatim origins/nominatim-total.openstreetmap.yml nominatim + +clean: + rm -f includes/* json/* origins/* gdns/* + +lib/countries.xml: + curl -s -o $@ http://api.geonames.org/countryInfo?username=demo -data/%: - sed -r -e 's/$(notdir $<)(:|$$)/$(notdir $@)\1/g' < $< > $@ +origins/nominatim.openstreetmap.yml: bin/mkcountries lib/countries.xml requests/nominatim.openstreetmap.yml + bin/mkcountries requests/nominatim.openstreetmap.yml origins/nominatim.openstreetmap.yml diff --git a/README.md b/README.md index 05142fe..95cbcb8 100644 --- a/README.md +++ b/README.md @@ -1,76 +1,14 @@ OpenStreetMap DNS ====================================== -This repository contains the DNS zone file templates and related code for managing OpenStreetMap.org and other domain names DNS. The full list of domains are in the [Makefile](Makefile). - -The authoritative DNS nameservers we use are kindly run by [Bytemark](https://docs.bytemark.co.uk/article/content-dns/). We would like to thank [Bytemark](https://www.bytemark.co.uk/) for their many years of support. +This repository contains the DNS zone templates and related code for managing OpenStreetMap.org and other domain names. The full list of domains managed by this repo are in the [dnsconfig.js](dnsconfig.js) file. ## Standard DNS Zone Files -The [zone files templates](src/) are in [tinydns-data](http://cr.yp.to/djbdns/tinydns-data.html) syntax and are written out by the [Makefile](Makefile). +We use [dnscontrol](https://stackexchange.github.io/dnscontrol/) to manage OpenStreetMap DNS. A set of wrapper scripts are used, which are called from the [Makefile](Makefile) -On a repo commit, a git [post-receive](https://github.com/openstreetmap/chef/blob/master/cookbooks/dns/files/default/post-receive) runs `make update` via a [script](https://github.com/openstreetmap/chef/blob/master/cookbooks/dns/templates/default/dns-update.erb) which then pushes the updated zone files to the authoritative DNS nameservers. +Merges to the master branch trigger a git [post-receive](https://github.com/openstreetmap/chef/blob/master/cookbooks/dns/files/default/post-receive) which runs `make update` via a [script](https://github.com/openstreetmap/chef/blob/master/cookbooks/dns/templates/default/dns-update.erb), the DNS is then updated by dnscontrol. ## GeoDNS Zones -The GeoDNS zones are handled differently. - -### tile.openstreetmap.org (mkgeo Generated) - -The `tile.openstreetmap.org` and `[a|b|c].tile.openstreetmap.org` are CNAME'ed to the `tile.geo.openstreetmap.org` zone. - -The `tile.openstreetmap.org` zone file is written by [mkgeo](bin/mkgeo) which attempts to match the [estimated country bandwidth requirements](bandwidth/tile.openstreetmap.yml) to the nearest [running](https://uptime.openstreetmap.org/) [tile cache server](src/tile.openstreetmap) with available capacity. - -Example `tile.openstreetmap.org` zone file snippet in [tinydns-data](http://cr.yp.to/djbdns/tinydns-data.html) syntax as generated by [mkgeo](bin/mkgeo): - -``` -# Afghanistan -Caf.tile.openstreetmap.org:baku.tile.openstreetmap.org:600 -# Albania -Cal.tile.openstreetmap.org:osijek.tile.openstreetmap.org:600 -# Algeria -Cdz.tile.openstreetmap.org:zaragoza.tile.openstreetmap.org:600 -# American Samoa -Cas.tile.openstreetmap.org:sanfrancisco.tile.openstreetmap.org:600 -... -# Servers -+aalborg.tile.openstreetmap.org:130.225.254.123:600 -+amsterdam.tile.openstreetmap.org:134.90.146.26:600 -+baku.tile.openstreetmap.org:94.20.20.55:600 -``` - -The current tile.openstreetmap.org matching is here: https://dns.openstreetmap.org/tile.openstreetmap.org.html - -### tile.geo.openstreetmap.org (GeoIP) - -The `tile.geo.openstreetmap.org` zone uses authoritative [gdnsd](https://gdnsd.org/) DNS nameservers (`a.ns.openstreetmap.org`, `b.ns.openstreetmap.org`, etc ). - -The gdnsd config is managed using a [chef cookbook](https://github.com/openstreetmap/chef/tree/master/cookbooks/geodns). - -The DNS responses from `tile.geo.openstreetmap.org` are CNAMEs to XX.tile.openstreetmap.org, where XX is the ISO 3166-1 alpha-2 country code from the [client subnet if supplied by EDNS0](https://tools.ietf.org/html/rfc7871) or the IP address of the resolving DNS if the client subnet is not supplied by EDNS0. - -A typical DNS query flow example: `a.tile.openstreetmap.org -> CNAME tile.geo.openstreetmap.org -> CNAME gb.tile.openstreetmap.org. -> CNAME aalborg.tile.openstreetmap.org. -> A aaa.bbb.ccc.ddd` - -### render.openstreetmap.org (mkgeo Generated) - -The `render.openstreetmap.org` zone is a DNS zone used internally by the tile.openstreetmap.org cache servers and ***SHOULD NOT BE BE USED BY OTHERS***. - -The `render.openstreetmap.org` zone file is written by [mkgeo](bin/mkgeo) which attempts to match the estimated caches' bandwidth requirement (dynamically generated above tile.openstreetmap.org mkgeo) to the nearest [running](https://uptime.openstreetmap.org/) [render server](src/render.openstreetmap) with available capacity. - -Example `tile.openstreetmap.org` zone file snippet in [tinydns-data](http://cr.yp.to/djbdns/tinydns-data.html) syntax as generated by [mkgeo](bin/mkgeo): - -``` -# aalborg -Caalborg.render.openstreetmap.org:vial.render.openstreetmap.org:600 -# amsterdam -Camsterdam.render.openstreetmap.org:yevaud.render.openstreetmap.org:600 -# baku -Cbaku.render.openstreetmap.org:vial.render.openstreetmap.org:600 -... -# Servers -+orm.render.openstreetmap.org:193.63.75.98:600 -+vial.render.openstreetmap.org:138.201.195.31:600 -+yevaud.render.openstreetmap.org:128.40.45.208:600 -``` - -The current render.openstreetmap.org matching is here: https://dns.openstreetmap.org/render.openstreetmap.org.html +For GeoDNS zones we use [gdnsd](https://gdnsd.org/) with gdnsd config files generated by scripts called from the [Makefile](Makefile) file. diff --git a/bandwidth/tile.openstreetmap.yml b/bandwidth/tile.openstreetmap.yml deleted file mode 100644 index cb3dba2..0000000 --- a/bandwidth/tile.openstreetmap.yml +++ /dev/null @@ -1,243 +0,0 @@ ---- -AD: 147607.008889 -AE: 1980282.98889 -AF: 202257.473333 -AG: 30940.2377778 -AI: 3555.73333333 -AL: 1456264.04667 -AM: 1720294.78889 -AO: 245780.142222 -AQ: 1237.71111111 -AR: 24028705.0622 -AS: 26602.3066667 -AT: 27525216.7444 -AU: 17740199.6244 -AW: 181238.857778 -AX: 81417.5666667 -AZ: 1644721.66667 -BA: 5360357.34222 -BB: 113795.402222 -BD: 2637835.48667 -BE: 31379699.3333 -BF: 171339.873333 -BG: 16462872.4089 -BH: 178017.288889 -BI: 39235.9111111 -BJ: 144971.944444 -BL: 26516.7333333 -BM: 68879.2688889 -BN: 101534.3 -BO: 6598657.62444 -BQ: 33092.2377778 -BR: 67895824.1933 -BS: 80005.3155556 -BT: 73882.6844444 -BW: 177755.48 -BY: 28140174.3933 -BZ: 244055.38 -CA: 39801926.6378 -CC: 239.693333333 -CD: 210700.564444 -CF: 1863.07111111 -CG: 70769.4266667 -CH: 25966555.3289 -CI: 991001.822222 -CK: 10671.6288889 -CL: 16922485.0578 -CM: 461239.615556 -CN: 3798976.38889 -CO: 17048273.6867 -CR: 2311707.40667 -CU: 261635.568889 -CV: 88190.0733333 -CW: 255916.342222 -CX: 93.2311111111 -CY: 1502580.43111 -CZ: 22924934.3844 -DE: 279437893.16 -DJ: 33447.0022222 -DK: 42115588.14 -DM: 62577.2711111 -DO: 1529532.88667 -DZ: 1634276.29556 -EC: 12126472.5289 -EE: 3663255.88667 -EG: 1931109.31333 -ER: 2352.07777778 -ES: 55510741.8511 -ET: 298329.402222 -FI: 11534177.54 -FJ: 52474.5955556 -FK: 10019.4333333 -FM: 9121.48888889 -FO: 161446.755556 -FR: 221971649.922 -GA: 56198.3333333 -GB: 123336985.522 -GD: 11526.4644444 -GE: 3335886.76222 -GF: 127130.957778 -GG: 169221.824444 -GH: 655150.575556 -GI: 89231.48 -GL: 100099.573333 -GM: 51320.2911111 -GN: 94694.3466667 -GP: 459603.5 -GQ: 12567.7688889 -GR: 19410573.1422 -GT: 3371719.58444 -GU: 65648.3622222 -GW: 9547.81777778 -GY: 38880.6866667 -HK: 6253019.34444 -HN: 696195.986667 -HR: 9634731.65556 -HT: 89951.7466667 -HU: 27508528.3956 -ID: 19977120.5311 -IE: 8530559.23333 -IL: 6125523.57556 -IM: 144767.664444 -IN: 27692918.0956 -IO: 21.4266666667 -IQ: 844265.502222 -IR: 20045732.9222 -IS: 1593090.64 -IT: 83703072.8356 -JE: 140256.78 -JM: 375833.804444 -JO: 993150.335556 -JP: 27988334.2422 -KE: 1647671.42667 -KG: 2415359.04889 -KH: 711643.406667 -KI: 3892.54222222 -KM: 3859.51555556 -KN: 20678.1266667 -KP: 2463.49777778 -KR: 9611982.10222 -KW: 402377.588889 -KY: 91610.1333333 -KZ: 11179783.5533 -LA: 248326.228889 -LB: 568474.653333 -LC: 67230.4666667 -LI: 217418.026667 -LK: 830831.877778 -LR: 109338.006667 -LS: 22995.7488889 -LT: 10506640.4822 -LU: 2332984.10889 -LV: 10154900.8356 -LY: 150966.048889 -MA: 2381142.94889 -MC: 190155.5 -MD: 5369052.67111 -ME: 663404.133333 -MF: 15766.7111111 -MG: 413607.266667 -MH: 5420.73555556 -MK: 832677.937778 -ML: 165364.922222 -MM: 1574103.97111 -MN: 195058.542222 -MO: 226535.004444 -MP: 11891.1377778 -MQ: 361034.924444 -MR: 74424.8177778 -MS: 4853.69777778 -MT: 586558.177778 -MU: 327995.093333 -MV: 122568.173333 -MW: 90975.1466667 -MX: 37727070.8733 -MY: 3114449.34444 -MZ: 368243.097778 -NA: 157454.515556 -NC: 240829.58 -NE: 67342.48 -NF: 253.222222222 -NG: 566236.137778 -NI: 877344.76 -NL: 95809248.2356 -NO: 7864988.36222 -NP: 798218.357778 -NR: 1346.68888889 -NU: 307.917777778 -NZ: 3786275.34222 -OM: 313158.306667 -PA: 915175.135556 -PE: 11577958.7778 -PF: 161560.595556 -PG: 47218.0222222 -PH: 6965070.46 -PK: 2669556.02889 -PL: 188700107.164 -PM: 51462.8177778 -PR: 925986.406667 -PS: 350296.895556 -PT: 11851530.2422 -PW: 18346.9177778 -PY: 1779073.26889 -QA: 345872.877778 -RE: 888326.597778 -RO: 30365147.2511 -RS: 9551556.56889 -RU: 155014855.847 -RW: 196213.697778 -SA: 1861605.02667 -SB: 9961.35333333 -SC: 50707.7577778 -SD: 143548.24 -SE: 15608222.4422 -SG: 3762772.32889 -SH: 1960.12666667 -SI: 3977915.10889 -SK: 18991595.6333 -SL: 37188.2888889 -SM: 134091.466667 -SN: 441923.386667 -SO: 346586.811111 -SR: 148975.248889 -SS: 20085.78 -ST: 4658.13111111 -SV: 1096400.23556 -SX: 29970.1955556 -SY: 184978.342222 -SZ: 18843.2466667 -TC: 93588.1177778 -TD: 10838.6422222 -TG: 109304.388889 -TH: 8181045.00667 -TJ: 303382.026667 -TL: 41618.4422222 -TM: 33138.0888889 -TN: 2539957.73111 -TO: 6872.98888889 -TR: 36320266.9556 -TT: 595362.062222 -TV: 6377.35777778 -TW: 24895659.9 -TZ: 592716.151111 -UA: 71935436.2489 -UG: 371570.777778 -UM: 417.811111111 -US: 168068359.904 -UY: 3862789.72444 -UZ: 1576052.12444 -VA: 24871.3177778 -VC: 16695.1177778 -VE: 2429953.49556 -VG: 19105.4711111 -VI: 40648.4066667 -VN: 1585975.8 -VU: 30389.8666667 -WF: 3540.82888889 -WS: 18399.8555556 -XK: 40469.0288889 -YE: 117418.873333 -YT: 78763.2866667 -ZA: 6015791.69778 -ZM: 119848.686667 -ZW: 284603.042222 diff --git a/bin/mkcountries b/bin/mkcountries index 42863a7..ca8427a 100755 --- a/bin/mkcountries +++ b/bin/mkcountries @@ -7,7 +7,7 @@ use XML::TreeBuilder; use YAML; # Get arguments -my $bandwidthfile = shift @ARGV; +my $requestsfile = shift @ARGV; my $originsfile = shift @ARGV; # Initialise origins @@ -19,8 +19,8 @@ my $countries = XML::TreeBuilder->new; # Parse the country database $countries->parsefile("lib/countries.xml"); -# Load the per-country bandwidth details -my $bandwidth = YAML::LoadFile($bandwidthfile); +# Load the per-country requests details +my $requests = YAML::LoadFile($requestsfile); # Fill in country table and work out which clusters each can use foreach my $country ($countries->look_down("_tag" => "country")) @@ -28,7 +28,7 @@ foreach my $country ($countries->look_down("_tag" => "country")) my $code = $country->look_down("_tag" => "countryCode")->as_text; my $name = $country->look_down("_tag" => "countryName")->as_text; my $population = $country->look_down("_tag" => "population")->as_text; - my $bandwidth = $bandwidth->{$code} || 0; + my $requests = $requests->{$code} || 0; my $continent = $country->look_down("_tag" => "continent")->as_text; my $west = $country->look_down("_tag" => "west")->as_text; my $north = $country->look_down("_tag" => "north")->as_text; @@ -40,7 +40,7 @@ foreach my $country ($countries->look_down("_tag" => "country")) $origins->{$code} = { code => $code, name => $name, country => $code, continent => $continent, - bandwidth => $bandwidth, lat => $lat, lon => $lon + requests => $requests, lat => $lat, lon => $lon }; } diff --git a/bin/mkgeo b/bin/mkgeo index 873fbf8..2c0453b 100755 --- a/bin/mkgeo +++ b/bin/mkgeo @@ -1,5 +1,7 @@ #!/usr/bin/perl +use v5.12; + use strict; use warnings; @@ -7,14 +9,14 @@ use IO::File; use Math::Trig qw(deg2rad pip2 great_circle_distance); use JSON::XS; use LWP::UserAgent; -use YAML; +use YAML::XS qw(LoadFile DumpFile); my $originfile = shift @ARGV; my $clusterfile = shift @ARGV; my $zone = shift @ARGV; my $targetoriginfile = shift @ARGV; -my $origins = YAML::LoadFile($originfile); -my $clusters = YAML::LoadFile($clusterfile); +my $origins = LoadFile($originfile); +my $clusters = LoadFile($clusterfile); my $gdnsname = shift @ARGV; my @servers; @@ -23,22 +25,23 @@ while (my($name,$cluster) = each %$clusters) { if ($cluster->{servers}) { - $cluster->{bandwidth} = 0; + $cluster->{requests} = 0; foreach my $server (@{$cluster->{servers}}) { $server->{cluster} = $cluster; - $cluster->{bandwidth} = $cluster->{bandwidth} + $server->{bandwidth}; + $cluster->{requests} = $cluster->{requests} + $server->{requests}; push @servers, $server; } } - else + elsif ($cluster->{requests} > 0) { my $server = { cluster => $cluster, statuscake => $cluster->{statuscake}, - bandwidth => $cluster->{bandwidth}, + requests => $cluster->{requests}, + cname => $cluster->{cname}, ipv4 => $cluster->{ipv4}, ipv6 => $cluster->{ipv6} }; @@ -47,6 +50,10 @@ while (my($name,$cluster) = each %$clusters) push @servers, $server; } + else + { + $cluster->{servers} = []; + } $cluster->{name} = $name; $cluster->{status} = "down"; @@ -59,42 +66,50 @@ foreach my $server (@servers) } # If statuscake support is enabled then check which servers are up -if ($ENV{STATUSCAKE_USERNAME} && $ENV{STATUSCAKE_APIKEY}) +if ($ENV{STATUSCAKE_APIKEY}) { my $ua = LWP::UserAgent->new; my $cache; $ua->agent("mkgeo/1.0"); - $ua->default_header("Username", $ENV{STATUSCAKE_USERNAME}); - $ua->default_header("API", $ENV{STATUSCAKE_APIKEY}); + $ua->default_header("Authorization", "Bearer $ENV{STATUSCAKE_APIKEY}"); if (-f "statuscake.yml") { - $cache = YAML::LoadFile("statuscake.yml"); + $cache = LoadFile("statuscake.yml"); } else { $cache = {}; } - my $response = $ua->get("https://app.statuscake.com/API/Tests/"); + my $page = 1; + my $pages = 1; - if ($response->is_success) + while ($page <= $pages) { - my $tests = decode_json($response->content); + my $response = $ua->get("https://api.statuscake.com/v1/uptime?nouptime=true&limit=100&page=${page}"); - foreach my $test (@$tests) + if ($response->is_success) { - my $testid = $test->{TestID}; + my $uptime = decode_json($response->content); - if ($test->{Status} eq "Up" && !$test->{Paused}) + foreach my $test (@{$uptime->{data}}) { - $cache->{$testid} = "up"; - } - else - { - $cache->{$testid} = "down"; + my $testid = $test->{id}; + + if ($test->{status} eq "up" && !$test->{paused}) + { + $cache->{$testid} = "up"; + } + else + { + $cache->{$testid} = "down"; + } } + + $page = $page + 1; + $pages = $uptime->{metadata}->{page_count}; } } @@ -117,7 +132,8 @@ if ($ENV{STATUSCAKE_USERNAME} && $ENV{STATUSCAKE_APIKEY}) } } - YAML::DumpFile("statuscake.yml", $cache); + DumpFile("statuscake-$$.yml", $cache); + rename("statuscake-$$.yml", "statuscake.yml"); } # Mark a cluster as up if any servers are up @@ -129,25 +145,30 @@ foreach my $server (@servers) } else { - $server->{cluster}->{bandwidth} = $server->{cluster}->{bandwidth} - $server->{bandwidth}; + $server->{cluster}->{requests} = $server->{cluster}->{requests} - $server->{requests}; } } +# Abort if no servers at all are up +exit 0 unless grep { $_->{status} eq "up" } values(%$clusters); + # Create target origins object my $targetorigins = {}; # Initialise cluster details while (my($name,$cluster) = each %$clusters) { - $cluster->{bandwidth_limit} = $cluster->{bandwidth} * 1024 * 1024; - $cluster->{bandwidth_used} = 0; + $cluster->{requests_limit} = $cluster->{requests}; + $cluster->{requests_used} = 0; + + next if $cluster->{global}; $targetorigins->{$cluster->{name}} = { code => $cluster->{name}, name => $cluster->{name}, lat => $cluster->{lat}, lon => $cluster->{lon}, - bandwidth => 0 + requests => 0 }; } @@ -163,7 +184,16 @@ foreach my $origin (values %$origins) if ($cluster->{status} eq "up" && $match ne "denied") { my $priority = $match eq "preferred" ? 20 : 10; - my $distance = distance($origin->{lat}, $origin->{lon}, $cluster->{lat}, $cluster->{lon}); + my $distance; + + if ($cluster->{global}) + { + $distance = 0; + } + else + { + $distance = distance($origin->{lat}, $origin->{lon}, $cluster->{lat}, $cluster->{lon}); + } push @mappings, { origin => $origin, cluster => $cluster, @@ -177,7 +207,7 @@ foreach my $origin (values %$origins) allocate_clusters(@mappings); # If we failed to allocate every origin then loop, increasing -# the bandwidth for each cluster by a little and retrying until +# the requests for each cluster by a little and retrying until # we manage to allocate everything while (grep { !exists($_->{cluster}) } values %$origins) { @@ -187,95 +217,133 @@ while (grep { !exists($_->{cluster}) } values %$origins) delete $origin->{cluster}; } - # Reset bandwidth usage for clusters and increase limits by 10% + # Reset requests usage for clusters and increase limits by 10% foreach my $cluster (values %$clusters) { - $cluster->{bandwidth_used} = 0; - $cluster->{bandwidth_limit} = $cluster->{bandwidth_limit} * 1.1; + $cluster->{requests_used} = 0; + $cluster->{requests_limit} = $cluster->{requests_limit} * 1.1; } # Try the allocate again allocate_clusters(@mappings); } +# Report on allocation results +foreach my $name (sort keys %$clusters) +{ + my $cluster = $clusters->{$name}; + my $used = int($cluster->{requests_used} + 0.5); + my $limit = $cluster->{requests_limit}; + + if ($limit > 0) + { + my $proportion = int($used / $limit * 100 + 0.5); + + print "${name}: used ${used} of ${limit} (${proportion}%)\n"; + } + else + { + print "${name}: used ${used} of ${limit}\n"; + } +} + # Create JSON collection object my @json; # Open output files -my $zonefile = IO::File->new("> data/${zone}") || die "$!"; -my $jsonfile = IO::File->new("> json/${zone}.json") || die "$!"; +my $zonefile = IO::File->new("> include/${zone}.js") || die "$!"; +my $jsonfile = IO::File->new("> json/${zone}.openstreetmap.org.json") || die "$!"; + +# Output headers +$zonefile->print("var \U${zone}\E_RECORDS = [\n"); # Output details for each country foreach my $origin (sort { $a->{name} cmp $b->{name} } values %$origins) { my $cluster = $origin->{cluster}; - my $clon = $origin->{lon}; - my $clat = $origin->{lat}; - my $slon = $cluster->{lon}; - my $slat = $cluster->{lat}; - if ($clon > 0 && $slon < 0 && 360 + $slon - $clon < $clon - $slon) - { - $slon = $slon + 360; - } - elsif ($slon > 0 && $clon < 0 && 360 + $clon - $slon < $slon - $clon) + if (!defined($gdnsname)) { - $clon = $clon + 360; + $zonefile->print(" CNAME(\"\L$origin->{code}\E.${zone}\", \"$cluster->{name}.${zone}.openstreetmap.org.\", TTL(\"10m\")),\n"); } - $zonefile->print("# $origin->{name}\n"); - $zonefile->print("C\L$origin->{code}\E.${zone}:$cluster->{name}.${zone}:600\n"); + if ($cluster->{lon} && $cluster->{lat}) + { + my $clon = $origin->{lon}; + my $clat = $origin->{lat}; + my $slon = $cluster->{lon}; + my $slat = $cluster->{lat}; - push @json, { - type => "Feature", - geometry => { - type => "LineString", - coordinates => [ [ $clon, $clat ], [ $slon, $slat ] ] - }, - properties => { - origin => $origin->{name}, - server => $cluster->{name}, - colour => $cluster->{colour} + if ($clon > 0 && $slon < 0 && 360 + $slon - $clon < $clon - $slon) + { + $slon = $slon + 360; + } + elsif ($slon > 0 && $clon < 0 && 360 + $clon - $slon < $slon - $clon) + { + $clon = $clon + 360; } - }; - $targetorigins->{$cluster->{name}}->{bandwidth} += $origin->{bandwidth}; -} + push @json, { + type => "Feature", + geometry => { + type => "LineString", + coordinates => [ [ $clon, $clat ], [ $slon, $slat ] ] + }, + properties => { + origin => $origin->{name}, + server => $cluster->{name}, + colour => $cluster->{colour} + } + }; + } -# Header for default records -$zonefile->print("# Unknown origins\n"); + next if $cluster->{global}; -# Output default records for IPs that can't be mapped to a country -foreach my $cluster (sort { $a->{name} cmp $b->{name} } values %$clusters) -{ - my $name = $cluster->{name}; + $targetorigins->{$cluster->{name}}->{requests} += $origin->{requests}; +} - if (my $default = $cluster->{default}) - { - output_server($zonefile, "${default}.${zone}", $cluster); - } - elsif (exists($cluster->{default})) +# Skip default records if we don't need them +if (!defined($gdnsname)) +{ + # Output default records for IPs that can't be mapped to a country + foreach my $cluster (sort { $a->{name} cmp $b->{name} } values %$clusters) { - output_server($zonefile, "${zone}", $cluster); + my $name = $cluster->{name}; + + if (my $default = $cluster->{default}) + { + output_server($zonefile, "${default}.${zone}", $cluster, 0); + } + elsif (exists($cluster->{default})) + { + output_server($zonefile, "${zone}", $cluster, 0); + } } } -# Header for underlying servers -$zonefile->print("# Servers\n"); - # Output A records for each cluster foreach my $cluster (sort { $a->{name} cmp $b->{name} } values %$clusters) { my $name = $cluster->{name}; - output_server($zonefile, "${name}.${zone}", $cluster); + if (@{$cluster->{servers}} > 1) + { + output_server($zonefile, "${name}-%02d.${zone}", $cluster, 1); + } + else + { + output_server($zonefile, "${name}.${zone}", $cluster, 1); + } } # Output the GeoJSON text $jsonfile->print(encode_json(\@json)); +# Output footers +$zonefile->print("];\n"); + # Close the output files -$jsonfile->close(); +$zonefile->close(); $zonefile->close(); # Output gdnsd configuration @@ -283,10 +351,11 @@ if (defined($gdnsname)) { my $gdnsmapfile = IO::File->new("> gdns/${gdnsname}.map") || die "$!"; my $gdnsresourcefile = IO::File->new("> gdns/${gdnsname}.resource") || die "$!"; + my $gdnsweightedfile = IO::File->new("> gdns/${gdnsname}.weighted") || die "$!"; my $continent = ""; $gdnsmapfile->print("${gdnsname} => {\n"); - $gdnsmapfile->print(" geoip2_db => /var/lib/GeoIP/GeoLite2-Country.mmdb\n"); + $gdnsmapfile->print(" geoip2_db => /usr/share/GeoIP/GeoLite2-Country.mmdb\n"); $gdnsmapfile->print(" datacenters => [" . join(",", sort(keys(%$clusters))) . "]\n"); $gdnsmapfile->print(" map => {\n"); $gdnsmapfile->print(" default => [" . join(",", sort(map { $_->{name} } grep { $_->{default} } values(%$clusters))) . "]\n"); @@ -323,18 +392,52 @@ if (defined($gdnsname)) { my $name = $cluster->{name}; - $gdnsresourcefile->print(" ${name} => ${name}.tile.openstreetmap.org.\n"); + if (@{$cluster->{servers}} > 1 && grep { $_->{status} eq "up" } @{$cluster->{servers}}) + { + $gdnsweightedfile->print("${name} => {\n"); + + while (my($index,$server) = each @{$cluster->{servers}}) + { + if ($server->{status} eq "up") + { + my $number = sprintf("%02d", $index + 1); + my $requests = $server->{requests}; + + if (my $cname = $server->{cname}) + { + $gdnsweightedfile->print(" ${name}-${number} = [ ${cname}., ${requests} ]\n"); + } + else + { + $gdnsweightedfile->print(" ${name}-${number} = [ ${name}-${number}.${zone}.openstreetmap.org., ${requests} ]\n"); + } + } + } + + $gdnsweightedfile->print("}\n"); + + $gdnsresourcefile->print(" ${name} => %weighted!${name}\n"); + } + elsif (my $cname = $cluster->{cname}) + { + $gdnsresourcefile->print(" ${name} => ${cname}.\n"); + } + else + { + $gdnsresourcefile->print(" ${name} => ${name}.${zone}.openstreetmap.org.\n"); + } } $gdnsresourcefile->print(" }\n"); $gdnsresourcefile->print("}\n"); + $gdnsweightedfile->close(); $gdnsresourcefile->close(); $gdnsmapfile->close(); } # Output the target details in origin format if required -YAML::DumpFile($targetoriginfile, $targetorigins) if $targetoriginfile; +DumpFile($targetoriginfile, $targetorigins) if $targetoriginfile; exit 0; @@ -428,7 +531,7 @@ sub allocate_clusters my @mappings = sort { compare_mappings($a, $b) } @_; # Loop over the mappings, trying to assign each origin to the - # nearest cluster, but subject to the bandwidth limits + # nearest cluster, but subject to the request limits while (my $mapping = shift @mappings) { my @group; @@ -440,16 +543,16 @@ sub allocate_clusters push @group, shift @mappings; } - for my $mapping (sort compare_bandwidth @group) + for my $mapping (sort compare_requests @group) { my $origin = $mapping->{origin}; my $cluster = $mapping->{cluster}; if (!exists($origin->{cluster}) && - $cluster->{bandwidth_used} + $origin->{bandwidth} <= $cluster->{bandwidth_limit}) + $cluster->{requests_used} + $origin->{requests} <= $cluster->{requests_limit}) { $origin->{cluster} = $cluster; - $cluster->{bandwidth_used} = $cluster->{bandwidth_used} + $origin->{bandwidth}; + $cluster->{requests_used} = $cluster->{requests_used} + $origin->{requests}; } } } @@ -472,10 +575,10 @@ sub compare_mappings # # Compare two mappings to decide which to try first # -sub compare_bandwidth +sub compare_requests { - my $a_used = ( $a->{cluster}->{bandwidth_used} * 100.0 ) / ( $a->{cluster}->{bandwidth_limit} * 1.0 ); - my $b_used = ( $b->{cluster}->{bandwidth_used} * 100.0 ) / ( $b->{cluster}->{bandwidth_limit} * 1.0 ); + my $a_used = ( $a->{cluster}->{requests_used} * 100.0 ) / ( $a->{cluster}->{requests_limit} * 1.0 ); + my $b_used = ( $b->{cluster}->{requests_used} * 100.0 ) / ( $b->{cluster}->{requests_limit} * 1.0 ); return $a_used <=> $b_used; } @@ -488,16 +591,20 @@ sub output_server my $zonefile = shift; my $name = shift; my $cluster = shift; + my $all = shift; - foreach my $server (@{$cluster->{servers}}) + while (my($index,$server) = each @{$cluster->{servers}}) { - if ($server->{status} eq "up") + if ($all || $server->{status} eq "up") { - $zonefile->print("+${name}:$server->{ipv4}:600\n"); + if ($server->{ipv4}) + { + $zonefile->printf(" A(\"${name}\", \"$server->{ipv4}\", TTL(\"10m\")),\n", $index + 1); + } if ($server->{ipv6}) { -# $zonefile->print("3${name}:$server->{ipv6}:600\n"); + $zonefile->printf(" AAAA(\"${name}\", \"$server->{ipv6}\", TTL(\"10m\")),\n", $index + 1); } } } diff --git a/bin/mksshfp b/bin/mksshfp new file mode 100755 index 0000000..f3b6d1a --- /dev/null +++ b/bin/mksshfp @@ -0,0 +1,76 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +use Digest::SHA qw(sha256_hex); +use MIME::Base64; + +my %hosts; + +if (-f "/etc/ssh/ssh_known_hosts") +{ + open(HOSTS, "<", "/etc/ssh/ssh_known_hosts") || die $!; + + while (my $line = ) + { + last if $line =~ /^# Manually maintained records$/; + + if ($line =~ /^([^, ]+)\S* (\S+) (\S+)$/) + { + my $host = $1; + my $algorithm = $2; + my $value = uc(sha256_hex(decode_base64($3))); + + $host =~ s/\.openstreetmap\.org$//; + + if ($algorithm ne "2") + { + $hosts{$host} ||= {}; + + $hosts{$host}->{$algorithm} = $value; + } + } + } + + close(HOSTS); +} + +open(SSHFP_JS, ">", "include/sshfp.js") || die $!; + +print SSHFP_JS qq|var SSHFP_RECORDS = [\n|; + +foreach my $host (sort keys %hosts) +{ + if ($hosts{$host}->{"ecdsa-sha2-nistp256"} || $hosts{$host}->{"ssh-ed25519"}) + { + if ($hosts{$host}->{"ecdsa-sha2-nistp256"}) + { + print SSHFP_JS sshfp_record($host, "3", $hosts{$host}->{"ecdsa-sha2-nistp256"}); + } + + if ($hosts{$host}->{"ssh-ed25519"}) + { + print SSHFP_JS sshfp_record($host, "4", $hosts{$host}->{"ssh-ed25519"}); + } + } + elsif ($hosts{$host}->{"ssh-rsa"}) + { + print SSHFP_JS sshfp_record($host, "1", $hosts{$host}->{"ssh-rsa"}); + } +} + +print SSHFP_JS qq|];\n|; + +close(SSHFP_JS); + +exit 0; + +sub sshfp_record +{ + my $host = shift; + my $algorithm = shift; + my $value = shift; + + return qq| SSHFP("${host}", ${algorithm}, 2, "${value}"),\n|; +} diff --git a/dnsconfig.js b/dnsconfig.js new file mode 100644 index 0000000..88b4218 --- /dev/null +++ b/dnsconfig.js @@ -0,0 +1,168 @@ +var REG_NONE = NewRegistrar("none"); +var REG_GANDI = NewRegistrar("gandi_v5"); +var PROVIDER = NewDnsProvider("cloudflare"); + +var DOMAIN; +var REGISTRAR; +var DYNAMIC_RECORDS; + +var QUALIFY = function (name) { + return name + "." + DOMAIN + "."; +}; + +function loadTemplate(template) { + return function (domain, registrar) { + DOMAIN = domain; + REGISTRAR = registrar; + DYNAMIC_RECORDS = []; + + for (var i = 2; i < arguments.length; i++) { + DYNAMIC_RECORDS = DYNAMIC_RECORDS.concat(arguments[i]); + } + + require("src/" + template + ".js"); + }; +} + +require("src/hosts.js"); + +var OPENSTREETMAP = loadTemplate("openstreetmap"); + +require("include/sshfp.js"); +require("include/nominatim.js"); + +try { + require("include/geo.js"); +} catch (e) { + var GEO_NS_RECORDS = []; +} + +OPENSTREETMAP_ORG_RECORDS = [ + CNAME("_acme-challenge.tile", "bxve5ryiwwv7woiraq.fastly-validations.com.", TTL("10m")) +] + +OSM_ORG_RECORDS = [ + CNAME("_acme-challenge.tile", "21gvdfyyxjoc4lmsem.fastly-validations.com.", TTL("10m")) +] + +OPENSTREETMAP("openstreetmap.org", REG_GANDI, OPENSTREETMAP_ORG_RECORDS, SSHFP_RECORDS, GEO_NS_RECORDS, NOMINATIM_RECORDS); +OPENSTREETMAP("openstreetmap.com", REG_GANDI); +OPENSTREETMAP("openstreetmap.net", REG_GANDI); +OPENSTREETMAP("openstreetmap.ca", REG_GANDI); +OPENSTREETMAP("openstreetmap.eu", REG_NONE); +OPENSTREETMAP("openstreetmap.pro", REG_GANDI); +OPENSTREETMAP("openstreetmap.gay", REG_GANDI); +OPENSTREETMAP("openstreetmaps.org", REG_GANDI); +OPENSTREETMAP("osm.org", REG_GANDI, OSM_ORG_RECORDS, SSHFP_RECORDS); +OPENSTREETMAP("openmaps.org", REG_GANDI); +OPENSTREETMAP("openstreetmap.io", REG_GANDI); +OPENSTREETMAP("osm.io", REG_GANDI); +OPENSTREETMAP("openstreetmap.li", REG_GANDI); +OPENSTREETMAP("openworldmap.org", REG_GANDI); +OPENSTREETMAP("freeosm.org", REG_GANDI); +OPENSTREETMAP("open-maps.org", REG_GANDI); +OPENSTREETMAP("open-maps.com", REG_GANDI); +OPENSTREETMAP("osmbugs.org", REG_GANDI); +OPENSTREETMAP("openstreetmap.ai", REG_GANDI); +OPENSTREETMAP("openstreetmap.am", REG_GANDI); +OPENSTREETMAP("openstreetmap.fi", REG_GANDI); +OPENSTREETMAP("openstreetmap.gr", REG_GANDI); +OPENSTREETMAP("openstreetmap.me", REG_GANDI); +OPENSTREETMAP("openstreetmap.mx", REG_GANDI); +OPENSTREETMAP("openstreetmap.nz", REG_GANDI); +OPENSTREETMAP("openstreetmap.pe", REG_GANDI); +OPENSTREETMAP("openstreetmap.ph", REG_GANDI); +OPENSTREETMAP("openstreetmap.sg", REG_GANDI); +OPENSTREETMAP("openstreetmap.tv", REG_GANDI); +OPENSTREETMAP("openstreetmap.wales", REG_GANDI); +OPENSTREETMAP("openstreetmapdata.org", REG_GANDI); + +// Disable due to registration issue +// OPENSTREETMAP("openstreetmap.al", REG_NONE); + +// Mastodon redirects to en.osm.town +var OPENSTREETMAP_TOWN = loadTemplate("openstreetmap-town"); +OPENSTREETMAP_TOWN("openstreetmap.town", REG_GANDI); + +// Domain owned by Amanda McCann +// osm.town + +// Managed independently by Guillaume Rischard +// openstreetmap.lu +// osm.lu + +var OSM_LI = loadTemplate("osm-li"); + +OSM_LI("osm.li", REG_GANDI); + +var OPENSTREETMAP_UK = loadTemplate("openstreetmap-uk"); + +OPENSTREETMAP_UK("openstreetmap.uk", REG_GANDI); +OPENSTREETMAP_UK("openstreetmap.org.uk", REG_GANDI); +OPENSTREETMAP_UK("openstreetmap.co.uk", REG_GANDI); + +var OPENSTREETMAP_ZA = loadTemplate("openstreetmap-za"); + +OPENSTREETMAP_ZA("openstreetmap.org.za", REG_NONE); +OPENSTREETMAP_ZA("osm.org.za", REG_NONE); + +var OSMFOUNDATION = loadTemplate("osmfoundation"); + +OSMFOUNDATION("osmfoundation.org", REG_GANDI); + +var STATEOFTHEMAP = loadTemplate("stateofthemap"); + +STATEOFTHEMAP("stateofthemap.org", REG_GANDI); +STATEOFTHEMAP("stateofthemap.com", REG_GANDI); +STATEOFTHEMAP("sotm.org", REG_GANDI); + +// The domain is registation is managed by FOSSGIS.de +var STATEOFTHEMAP_EU = loadTemplate("stateofthemap-eu"); +STATEOFTHEMAP_EU("stateofthemap.eu", REG_NONE); + +// State of the Map Madagascar +var OPENSTREETMAP_MG = loadTemplate("openstreetmap-mg"); +OPENSTREETMAP_MG("openstreetmap.mg", REG_GANDI); + +var OPENGEODATA = loadTemplate("opengeodata"); +OPENGEODATA("opengeodata.org", REG_GANDI); + +var SWITCH2OSM = loadTemplate("switch2osm"); + +SWITCH2OSM("switch2osm.org", REG_GANDI); +SWITCH2OSM("switch2osm.com", REG_GANDI); + +var OSM2PGSQL = loadTemplate("osm2pgsql"); + +OSM2PGSQL("osm2pgsql.org", REG_GANDI); +OSM2PGSQL("osm2pgsql.com", REG_GANDI); + +var IDEDITOR = loadTemplate("ideditor"); + +IDEDITOR("ideditor.com", REG_GANDI); + +var OSMWIKI = loadTemplate("osm-wiki"); +OSMWIKI("osm.wiki", REG_GANDI); + +var PTR_EQUINIX_AMS_IPV4 = loadTemplate("ptr_equinix_ams_ipv4"); + +PTR_EQUINIX_AMS_IPV4("128-27.179.104.184.in-addr.arpa", REG_NONE); + +var PTR_EQUINIX_AMS_IPV6 = loadTemplate("ptr_equinix_ams_ipv6"); + +PTR_EQUINIX_AMS_IPV6(REV("2001:470:1:fa1::/64"), REG_NONE); + +var PTR_EQUINIX_DUB_IPV4 = loadTemplate("ptr_equinix_dub_ipv4"); + +PTR_EQUINIX_DUB_IPV4("96-27.226.104.184.in-addr.arpa", REG_NONE); + +var PTR_EQUINIX_DUB_IPV6 = loadTemplate("ptr_equinix_dub_ipv6"); + +PTR_EQUINIX_DUB_IPV6(REV("2001:470:1:b3b::/64"), REG_NONE); + +// No immediate plans +// External DNS and hosting still up +// freethepostcode.org + +// External DNS and hosting +// openstreetmap.cymru diff --git a/data/.gitkeep b/include/.gitkeep similarity index 100% rename from data/.gitkeep rename to include/.gitkeep diff --git a/lib/countries.xml b/lib/countries.xml index ad7886c..c25773f 100644 --- a/lib/countries.xml +++ b/lib/countries.xml @@ -1,5003 +1,5003 @@ - -AD -Andorra -020 -AND -AN -EU -Europe -Andorra la Vella -468.0 -84000 -EUR -ca -3041565 -1.4071867141112762 -42.65604389629997 -1.7865427778319827 -42.42849259876837 -AD### - - -AE -United Arab Emirates -784 -ARE -AE -AS -Asia -Abu Dhabi -82880.0 -4975593 -AED -ar-AE,fa,en,hi,ur -290557 -51.58332824707031 -26.08415985107422 -56.38166046142578 -22.633329391479492 - - - -AF -Afghanistan -004 -AFG -AF -AS -Asia -Kabul -647500.0 -29121286 -AFN -fa-AF,ps,uz-AF,tk -1149361 -60.478443 -38.483418 -74.879448 -29.377472 - - - -AG -Antigua and Barbuda -028 -ATG -AC -NA -North America -St. John's -443.0 -86754 -XCD -en-AG -3576396 --61.906425 -17.729387 --61.672421 -16.996979 - - - -AI -Anguilla -660 -AIA -AV -NA -North America -The Valley -102.0 -13254 -XCD -en-AI -3573511 --63.16808989603879 -18.276901971658063 --62.96655544577948 -18.160292974311673 - - - -AL -Albania -008 -ALB -AL -EU -Europe -Tirana -28748.0 -2986952 -ALL -sq,el -783754 -19.2639112711741 -42.6611669383269 -21.0574334835312 -39.6448624829142 -#### - - -AM -Armenia -051 -ARM -AM -AS -Asia -Yerevan -29800.0 -2968000 -AMD -hy -174982 -43.44978000000003 -41.301834 -46.6289052796227 -38.841972 -###### - - -AO -Angola -024 -AGO -AO -AF -Africa -Luanda -1246700.0 -13068161 -AOA -pt-AO -3351879 -11.679219 --4.376826 -24.082119 --18.042076 - - - -AQ -Antarctica -010 -ATA -AY -AN -Antarctica - -1.4E7 -0 - - -6697173 --179.9999 --60.515533 -179.9999 --89.9999 - - - -AR -Argentina -032 -ARG -AR -SA -South America -Buenos Aires -2766890.0 -41343201 -ARS -es-AR,en,it,de,fr,gn -3865483 --73.566302817 --21.777951173 --53.637962552 --55.0576984539999 -@####@@@ - - -AS -American Samoa -016 -ASM -AQ -OC -Oceania -Pago Pago -199.0 -57881 -USD -en-AS,sm,to -5880801 --171.091888 --11.0497 --169.416077 --14.382478 -#####-#### - - -AT -Austria -040 -AUT -AU -EU -Europe -Vienna -83858.0 -8205000 -EUR -de-AT,hr,hu,sl -2782113 -9.53095237240833 -49.0211627691393 -17.1620685652599 -46.3726520216244 -#### - - -AU -Australia -036 -AUS -AS -OC -Oceania -Canberra -7686850.0 -21515754 -AUD -en-AU -2077456 -112.911057 --10.062805 -153.639252 --43.64397 -#### - - -AW -Aruba -533 -ABW -AA -NA -North America -Oranjestad -193.0 -71566 -AWG -nl-AW,pap,es,en -3577279 --70.0644737196045 -12.623718127152925 --69.86575120104982 -12.411707706190716 - - - -AX -Åland -248 -ALA - -EU -Europe -Mariehamn -1580.0 -26711 -EUR -sv-AX -661882 -19.317694 -60.488861 -21.011862 -59.90675 -##### - - -AZ -Azerbaijan -031 -AZE -AJ -AS -Asia -Baku -86600.0 -8303512 -AZN -az,ru,hy -587116 -44.774113 -41.90564 -50.370083 -38.38915252685547 -AZ #### - - -BA -Bosnia and Herzegovina -070 -BIH -BK -EU -Europe -Sarajevo -51129.0 -4590000 -BAM -bs,hr-BA,sr-BA -3277605 -15.718945 -45.239193 -19.622223 -42.546112 -##### - - -BB -Barbados -052 -BRB -BB -NA -North America -Bridgetown -431.0 -285653 -BBD -en-BB -3374084 --59.648922 -13.327257 --59.420376 -13.039844 -BB##### - - -BD -Bangladesh -050 -BGD -BG -AS -Asia -Dhaka -144000.0 -156118464 -BDT -bn-BD,en -1210997 -88.028336 -26.631945 -92.673668 -20.743334 -#### - - -BE -Belgium -056 -BEL -BE -EU -Europe -Brussels -30510.0 -10403000 -EUR -nl-BE,fr-BE,de-BE -2802361 -2.54132898439873 -51.5051118897455 -6.40793743953125 -49.496968483036 -#### - - -BF -Burkina Faso -854 -BFA -UV -AF -Africa -Ouagadougou -274200.0 -16241811 -XOF -fr-BF,mos -2361809 --5.518916 -15.082593 -2.405395 -9.401108 - - - -BG -Bulgaria -100 -BGR -BU -EU -Europe -Sofia -110910.0 -7148785 -BGN -bg,tr-BG,rom -732800 -22.371166 -44.21764 -28.612167 -41.242084 -#### - - -BH -Bahrain -048 -BHR -BA -AS -Asia -Manama -665.0 -738004 -BHD -ar-BH,en,fa,ur -290291 -50.45414 -26.282583 -50.664471 -25.796862 -####|### - - -BI -Burundi -108 -BDI -BY -AF -Africa -Bujumbura -27830.0 -9863117 -BIF -fr-BI,rn -433561 -28.993061 --2.310123 -30.847729 --4.465713 - - - -BJ -Benin -204 -BEN -BN -AF -Africa -Porto-Novo -112620.0 -9056010 -XOF -fr-BJ -2395170 -0.774575 -12.418347 -3.851701 -6.225748 - - - -BL -Saint Barthélemy -652 -BLM -TB -NA -North America -Gustavia -21.0 -8450 -EUR -fr -3578476 --62.8739118253784 -17.928808791949283 --62.788983372985854 -17.878183227405575 -##### - - -BM -Bermuda -060 -BMU -BD -NA -North America -Hamilton -53.0 -65365 -BMD -en-BM,pt -3573345 --64.88723800000002 -32.39122351646162 --64.64718648144532 -32.247551 -@@ ## - - -BN -Brunei -096 -BRN -BX -AS -Asia -Bandar Seri Begawan -5770.0 -395027 -BND -ms-BN,en-BN -1820814 -114.071442 -5.047167 -115.359444 -4.003083 -@@#### - - -BO -Bolivia -068 -BOL -BL -SA -South America -Sucre -1098580.0 -9947418 -BOB -es-BO,qu,ay -3923057 --69.640762 --9.680567 --57.45809600000001 --22.896133 - - - -BQ -Bonaire -535 -BES - -NA -North America -Kralendijk -328.0 -18012 -USD -nl,pap,en -7626844 --68.416458 -12.304535 --68.192307 -12.017149 - - - -BR -Brazil -076 -BRA -BR -SA -South America -Brasília -8511965.0 -201103330 -BRL -pt-BR,es,en,fr -3469034 --73.985535 -5.264877 --32.392998 --33.750706 -#####-### - - -BS -Bahamas -044 -BHS -BF -NA -North America -Nassau -13940.0 -301790 -BSD -en-BS -3572887 --78.995911 -26.919243 --74.423874 -22.852743 - - - -BT -Bhutan -064 -BTN -BT -AS -Asia -Thimphu -47000.0 -699847 -BTN -dz -1252634 -88.746041414 -28.2476793010001 -92.1247543590001 -26.700655537 - - - -BV -Bouvet Island -074 -BVT -BV -AN -Antarctica - -49.0 -0 -NOK - -3371123 -3.286776428037342 --54.3887383509872 -3.434845577758324 --54.4507993522734 - - - -BW -Botswana -072 -BWA -BC -AF -Africa -Gaborone -600370.0 -2029307 -BWP -en-BW,tn-BW -933860 -19.999535 --17.780813 -29.360781 --26.907246 - - - -BY -Belarus -112 -BLR -BO -EU -Europe -Minsk -207600.0 -9685000 -BYN -be,ru -630336 -23.176889 -56.165806 -32.770805 -51.256416 -###### - - -BZ -Belize -084 -BLZ -BH -NA -North America -Belmopan -22966.0 -314522 -BZD -en-BZ,es -3582678 --89.224815 -18.496557 --87.776985 -15.8893 - - - -CA -Canada -124 -CAN -CA -NA -North America -Ottawa -9984670.0 -33679000 -CAD -en-CA,fr-CA,iu -6251999 --141.0 -83.110626 --52.636291 -41.67598 -@#@ #@# - - -CC -Cocos [Keeling] Islands -166 -CCK -CK -AS -Asia -West Island -14.0 -628 -AUD -ms-CC,en -1547376 -96.816941408 --12.072459094 -96.929489344 --12.208725839 - - - -CD -Democratic Republic of the Congo -180 -COD -CG -AF -Africa -Kinshasa -2345410.0 -70916439 -CDF -fr-CD,ln,ktu,kg,sw,lua -203312 -12.204144 -5.386098 -31.305912 --13.455675 - - - -CF -Central African Republic -140 -CAF -CT -AF -Africa -Bangui -622984.0 -4844927 -XAF -fr-CF,sg,ln,kg -239880 -14.420097 -11.007569 -27.463421 -2.220514 - - - -CG -Republic of the Congo -178 -COG -CF -AF -Africa -Brazzaville -342000.0 -3039126 -XAF -fr-CG,kg,ln-CG -2260494 -11.205009 -3.703082 -18.649839 --5.027223 - - - -CH -Switzerland -756 -CHE -SZ -EU -Europe -Bern -41290.0 -7581000 -CHF -de-CH,fr-CH,it-CH,rm -2658434 -5.95661377423453 -47.8098679329775 -10.4934735095497 -45.8191539516188 -#### - - -CI -Ivory Coast -384 -CIV -IV -AF -Africa -Yamoussoukro -322460.0 -21058798 -XOF -fr-CI -2287781 --8.599302 -10.736642 --2.494897 -4.357067 - - - -CK -Cook Islands -184 -COK -CW -OC -Oceania -Avarua -240.0 -21388 -NZD -en-CK,mi -1899402 --161.093658 --10.023114 --157.312134 --21.944164 - - - -CL -Chile -152 -CHL -CI -SA -South America -Santiago -756950.0 -16746491 -CLP -es-CL -3895114 --80.8370287079999 --17.4977759459999 --66.416152278 --55.909795409 -####### - - -CM -Cameroon -120 -CMR -CM -AF -Africa -Yaoundé -475440.0 -19294149 -XAF -en-CM,fr-CM -2233387 -8.494763 -13.078056 -16.192116 -1.652548 - - - -CN -China -156 -CHN -CH -AS -Asia -Beijing -9596960.0 -1330044000 -CNY -zh-CN,yue,wuu,dta,ug,za -1814991 -73.557693 -53.56086 -134.773911 -15.775416 -###### - - -CO -Colombia -170 -COL -CO -SA -South America -Bogotá -1138910.0 -47790000 -COP -es-CO -3686110 --81.735775648 -13.38600323 --66.8472153989999 --4.22839224299997 -###### - - -CR -Costa Rica -188 -CRI -CS -NA -North America -San José -51100.0 -4516220 -CRC -es-CR,en -3624060 --85.9502523586265 -11.2197589122308 --82.552318987959 -8.03962731803416 -##### - - -CU -Cuba -192 -CUB -CU -NA -North America -Havana -110860.0 -11423000 -CUP -es-CU,pap -3562981 --84.957428 -23.226042 --74.131775 -19.828083 -CP ##### - - -CV -Cape Verde -132 -CPV -CV -AF -Africa -Praia -4033.0 -508659 -CVE -pt-CV -3374766 --25.358747 -17.197178 --22.669443 -14.808022 -#### - - -CW -Curacao -531 -CUW -UC -NA -North America -Willemstad -444.0 -141766 -ANG -nl,pap -7626836 --69.157204 -12.385672 --68.733948 -12.032745 - - - -CX -Christmas Island -162 -CXR -KT -OC -Oceania -Flying Fish Cove -135.0 -1500 -AUD -en,zh,ms-CC -2078138 -105.533276992 --10.412356007 -105.712596992 --10.5704829995 -#### - - -CY -Cyprus -196 -CYP -CY -EU -Europe -Nicosia -9250.0 -1102677 -EUR -el-CY,tr-CY,en -146669 -32.27308300000004 -35.701527 -34.59791599999994 -34.6332846722908 -#### - - -CZ -Czechia -203 -CZE -EZ -EU -Europe -Prague -78866.0 -10476000 -CZK -cs,sk -3077311 -12.096194 -51.058887 -18.860111 -48.542915 -### ## - - -DE -Germany -276 -DEU -GM -EU -Europe -Berlin -357021.0 -81802257 -EUR -de -2921044 -5.8663152683722 -55.0583836008072 -15.0418156516163 -47.2701236047002 -##### - - -DJ -Djibouti -262 -DJI -DJ -AF -Africa -Djibouti -23000.0 -740528 -DJF -fr-DJ,ar,so-DJ,aa -223816 -41.773472 -12.706833 -43.416973 -10.909917 - - - -DK -Denmark -208 -DNK -DA -EU -Europe -Copenhagen -43094.0 -5484000 -DKK -da-DK,en,fo,de-DK -2623032 -8.075611 -57.748417 -15.158834 -54.562389 -#### - - -DM -Dominica -212 -DMA -DO -NA -North America -Roseau -754.0 -72813 -XCD -en-DM -3575830 --61.484108 -15.631809 --61.244152 -15.20169 - - - -DO -Dominican Republic -214 -DOM -DR -NA -North America -Santo Domingo -48730.0 -9823821 -DOP -es-DO -3508796 --72.0114723981787 -19.9321257501267 --68.3229591969468 -17.5395066830409 -##### - - -DZ -Algeria -012 -DZA -AG -AF -Africa -Algiers -2381740.0 -34586184 -DZD -ar-DZ -2589581 --8.673868 -37.093723 -11.979548 -18.960028 -##### - - -EC -Ecuador -218 -ECU -EC -SA -South America -Quito -283560.0 -14790608 -USD -es-EC -3658394 --81.0836838953894 -1.43523516349953 --75.1871465547501 --5.01615732302488 -@####@ - - -EE -Estonia -233 -EST -EN -EU -Europe -Tallinn -45226.0 -1291170 -EUR -et,ru -453733 -21.8285886498081 -59.6753143130129 -28.2090381531431 -57.5093097920079 -##### - - -EG -Egypt -818 -EGY -EG -AF -Africa -Cairo -1001450.0 -80471869 -EGP -ar-EG,en,fr -357994 -24.698111 -31.667334 -36.89833068847656 -21.725389 -##### - - -EH -Western Sahara -732 -ESH -WI -AF -Africa -Laâyoune / El Aaiún -266000.0 -273008 -MAD -ar,mey -2461445 --17.103182 -27.669674 --8.670276 -20.774158 - - - -ER -Eritrea -232 -ERI -ER -AF -Africa -Asmara -121320.0 -5792984 -ERN -aa-ER,ar,tig,kun,ti-ER -338010 -36.438778 -18.003084 -43.13464 -12.359555 - - - -ES -Spain -724 -ESP -SP -EU -Europe -Madrid -504782.0 -46505963 -EUR -es-ES,ca,gl,eu,oc -2510769 --9.30151567231899 -43.7913565913767 -4.32778473043961 -36.0001044260548 -##### - - -ET -Ethiopia -231 -ETH -ET -AF -Africa -Addis Ababa -1127127.0 -88013491 -ETB -am,en-ET,om-ET,ti-ET,so-ET,sid -337996 -32.999939 -14.89375 -47.986179 -3.402422 -#### - - -FI -Finland -246 -FIN -FI -EU -Europe -Helsinki -337030.0 -5244000 -EUR -fi-FI,sv-FI,smn -660013 -20.556944 -70.096054 -31.580944 -59.808777 -##### - - -FJ -Fiji -242 -FJI -FJ -OC -Oceania -Suva -18270.0 -875983 -FJD -en-FJ,fj -2205218 -177.14038537647912 --12.479632058714332 --178.424438 --20.67597 - - - -FK -Falkland Islands -238 -FLK -FK -SA -South America -Stanley -12173.0 -2638 -FKP -en-FK -3474414 --61.3474566739999 --51.2331394719999 --57.718087652 --52.383984175 - - - -FM -Micronesia -583 -FSM -FM -OC -Oceania -Palikir -702.0 -107708 -USD -en-FM,chk,pon,yap,kos,uli,woe,nkr,kpg -2081918 -137.33648 -10.08904 -163.03717 -1.02629 -##### - - -FO -Faroe Islands -234 -FRO -FO -EU -Europe -Tórshavn -1399.0 -48228 -DKK -fo,da-FO -2622320 --7.688191677774624 -62.3938884414274 --6.25655957192113 -61.3910302656013 -### - - -FR -France -250 -FRA -FR -EU -Europe -Paris -547030.0 -64768389 -EUR -fr-FR,frp,br,co,ca,eu,oc -3017382 --5.1389964684508 -51.0890012279322 -9.5596148665824 -41.3658213299999 -##### - - -GA -Gabon -266 -GAB -GB -AF -Africa -Libreville -267667.0 -1545255 -XAF -fr-GA -2400553 -8.695471 -2.322612 -14.502347 --3.978806 - - - -GB -United Kingdom -826 -GBR -UK -EU -Europe -London -244820.0 -62348447 -GBP -en-GB,cy-GB,gd -2635167 --8.61772077108559 -59.3607741849963 -1.7689121033873 -49.9028622252397 -@# #@@|@## #@@|@@# #@@|@@## #@@|@#@ #@@|@@#@ #@@|GIR0AA - - -GD -Grenada -308 -GRD -GJ -NA -North America -St. George's -344.0 -107818 -XCD -en-GD -3580239 --61.802344 -12.318283928171299 --61.57676970108031 -11.986893 - - - -GE -Georgia -268 -GEO -GG -AS -Asia -Tbilisi -69700.0 -4630000 -GEL -ka,ru,hy,az -614540 -40.010139 -43.586498 -46.725971 -41.053196 -#### - - -GF -French Guiana -254 -GUF -FG -SA -South America -Cayenne -91000.0 -195506 -EUR -fr-GF -3381670 --54.542511 -5.776496 --51.613949 -2.127094 -##### - - -GG -Guernsey -831 -GGY -GK -EU -Europe -St Peter Port -78.0 -65228 -GBP -en,nrf -3042362 --2.673194593476069 -49.731727816705416 --2.1577152112246267 -49.40764156876899 -@# #@@|@## #@@|@@# #@@|@@## #@@|@#@ #@@|@@#@ #@@|GIR0AA - - -GH -Ghana -288 -GHA -GH -AF -Africa -Accra -239460.0 -24339838 -GHS -en-GH,ak,ee,tw -2300660 --3.25542 -11.173301 -1.191781 -4.736723 - - - -GI -Gibraltar -292 -GIB -GI -EU -Europe -Gibraltar -6.5 -27884 -GIP -en-GI,es,it,pt -2411586 --5.36626149743654 -36.155439135670726 --5.338285164001491 -36.10903070140248 - - - -GL -Greenland -304 -GRL -GL -NA -North America -Nuuk -2166086.0 -56375 -DKK -kl,da-GL,en -3425505 --73.04203 -83.627357 --11.312319 -59.777401 -#### - - -GM -Gambia -270 -GMB -GA -AF -Africa -Bathurst -11300.0 -1593256 -GMD -en-GM,mnk,wof,wo,ff -2413451 --16.82507899999996 -13.826571 --13.797792999999956 -13.064252 - - - -GN -Guinea -324 -GIN -GV -AF -Africa -Conakry -245857.0 -10324025 -GNF -fr-GN -2420477 --14.926619 -12.67622 --7.641071 -7.193553 - - - -GP -Guadeloupe -312 -GLP -GP -NA -North America -Basse-Terre -1780.0 -443000 -EUR -fr-GP -3579143 --61.544765 -16.516848 --61.0 -15.867565 -##### - - -GQ -Equatorial Guinea -226 -GNQ -EK -AF -Africa -Malabo -28051.0 -1014999 -XAF -es-GQ,fr -2309096 -9.346865 -2.346989 -11.335724 -0.92086 - - - -GR -Greece -300 -GRC -GR -EU -Europe -Athens -131940.0 -11000000 -EUR -el-GR,en,fr -390903 -19.3736035624134 -41.7484999849641 -28.2470831714347 -34.8020663391466 -### ## - - -GS -South Georgia and the South Sandwich Islands -239 -SGS -SX -AN -Antarctica -Grytviken -3903.0 -30 -GBP -en -3474415 --38.0479509639999 --53.980896636 --26.252069712 --59.46319341 - - - -GT -Guatemala -320 -GTM -GT -NA -North America -Guatemala City -108890.0 -13550440 -GTQ -es-GT -3595528 --92.23629 -17.81522 --88.223198 -13.737302 -##### - - -GU -Guam -316 -GUM -GQ -OC -Oceania -Hagåtña -549.0 -159358 -USD -en-GU,ch-GU -4043988 -144.61806 -13.654402 -144.956894 -13.23376 -969## - - -GW -Guinea-Bissau -624 -GNB -PU -AF -Africa -Bissau -36120.0 -1565126 -XOF -pt-GW,pov -2372248 --16.717535 -12.680789 --13.636522 -10.924265 -#### - - -GY -Guyana -328 -GUY -GY -SA -South America -Georgetown -214970.0 -748486 -GYD -en-GY -3378535 --61.384762 -8.557567 --56.480251 -1.17508 - - - -HK -Hong Kong -344 -HKG -HK -AS -Asia -Hong Kong -1092.0 -6898686 -HKD -zh-HK,yue,zh,en -1819730 -113.837753 -22.559778 -114.434753 -22.15325 - - - -HM -Heard Island and McDonald Islands -334 -HMD -HM -AN -Antarctica - -412.0 -0 -AUD - -1547314 -72.596535 --52.909416 -73.859146 --53.192001 - - - -HN -Honduras -340 -HND -HO -NA -North America -Tegucigalpa -112090.0 -7989415 -HNL -es-HN,cab,miq -3608932 --89.350792 -16.510256 --83.155403 -12.982411 -@@#### - - -HR -Croatia -191 -HRV -HR -EU -Europe -Zagreb -56542.0 -4284889 -HRK -hr-HR,sr -3202326 -13.493222 -46.5549629558487 -19.427389 -42.43589 -##### - - -HT -Haiti -332 -HTI -HA -NA -North America -Port-au-Prince -27750.0 -9648924 -HTG -ht,fr-HT -3723988 --74.478584 -20.08782 --71.613358 -18.021032 -HT#### - - -HU -Hungary -348 -HUN -HU -EU -Europe -Budapest -93030.0 -9982000 -HUF -hu-HU -719819 -16.111889 -48.585667 -22.906 -45.74361 -#### - - -ID -Indonesia -360 -IDN -ID -AS -Asia -Jakarta -1919440.0 -242968342 -IDR -id,en,nl,jv -1643084 -95.009331 -5.904417 -141.021805 --10.941861 -##### - - -IE -Ireland -372 -IRL -EI -EU -Europe -Dublin -70280.0 -4622917 -EUR -en-IE,ga-IE -2963597 --10.4800035816853 -55.3829431564742 --5.99804990172185 -51.4475491577615 -@@@ @@@@ - - -IL -Israel -376 -ISR -IS -AS -Asia - -20770.0 -7353985 -ILS -he,ar-IL,en-IL, -294640 -34.270278754419145 -33.340137 -35.876804 -29.496639 -##### - - -IM -Isle of Man -833 -IMN -IM -EU -Europe -Douglas -572.0 -75049 -GBP -en,gv -3042225 --4.798722 -54.419724 --4.3115 -54.055916 -@# #@@|@## #@@|@@# #@@|@@## #@@|@#@ #@@|@@#@ #@@|GIR0AA - - -IN -India -356 -IND -IN -AS -Asia -New Delhi -3287590.0 -1173108018 -INR -en-IN,hi,bn,te,mr,ta,ur,gu,kn,ml,or,pa,as,bh,sat,ks,ne,sd,kok,doi,mni,sit,sa,fr,lus,inc -1269750 -68.4840183183648 -35.524548272882 -97.4152926679075 -6.7559528993543 -###### - - -IO -British Indian Ocean Territory -086 -IOT -IO -AS -Asia - -60.0 -4000 -USD -en-IO -1282588 -71.259972 --5.268333 -72.493164 --7.438028 - - - -IQ -Iraq -368 -IRQ -IZ -AS -Asia -Baghdad -437072.0 -29671605 -IQD -ar-IQ,ku,hy -99237 -38.79588699999999 -37.378029 -48.57591600000001 -29.069445 -##### - - -IR -Iran -364 -IRN -IR -AS -Asia -Tehran -1648000.0 -76923300 -IRR -fa-IR,ku -130758 -44.047279 -39.777222 -63.317471 -25.064083 -########## - - -IS -Iceland -352 -ISL -IC -EU -Europe -Reykjavik -103000.0 -308910 -ISK -is,en,de,da,sv,no -2629691 --24.5326753866625 -66.5377933098397 --13.4946206239501 -63.394392778588 -### - - -IT -Italy -380 -ITA -IT -EU -Europe -Rome -301230.0 -60340328 -EUR -it-IT,de-IT,fr-IT,sc,ca,co,sl -3175395 -6.62662135986088 -47.0917837415439 -18.5203814091888 -36.6440816661648 -##### - - -JE -Jersey -832 -JEY -JE -EU -Europe -Saint Helier -116.0 -90812 -GBP -en,fr,nrf -3042142 --2.260028 -49.265057 --2.022083 -49.169834 -@# #@@|@## #@@|@@# #@@|@@## #@@|@#@ #@@|@@#@ #@@|GIR0AA - - -JM -Jamaica -388 -JAM -JM -NA -North America -Kingston -10991.0 -2847232 -JMD -en-JM -3489940 --78.3690062954957 -18.524766185516 --76.1830989848426 -17.7059966193696 - - - -JO -Jordan -400 -JOR -JO -AS -Asia -Amman -92300.0 -6407085 -JOD -ar-JO,en -248816 -34.959999 -33.367668 -39.301167 -29.185888 -##### - - -JP -Japan -392 -JPN -JA -AS -Asia -Tokyo -377835.0 -127288000 -JPY -ja -1861060 -122.933653061 -45.52295736 -145.817458885 -24.255169441 -###-#### - - -KE -Kenya -404 -KEN -KE -AF -Africa -Nairobi -582650.0 -40046566 -KES -en-KE,sw-KE -192950 -33.908859 -5.019938 -41.899078 --4.678047 -##### - - -KG -Kyrgyzstan -417 -KGZ -KG -AS -Asia -Bishkek -198500.0 -5776500 -KGS -ky,uz,ru -1527747 -69.276611 -43.238224 -80.283165 -39.172832 -###### - - -KH -Cambodia -116 -KHM -CB -AS -Asia -Phnom Penh -181040.0 -14453680 -KHR -km,fr,en -1831722 -102.339996 -14.686417 -107.627724 -10.409083 -##### - - -KI -Kiribati -296 -KIR -KR -OC -Oceania -Tarawa -811.0 -92533 -AUD -en-KI,gil -4030945 -169.556137 -4.71957 --150.215347 --11.446881150186856 - - - -KM -Comoros -174 -COM -CN -AF -Africa -Moroni -2170.0 -773407 -KMF -ar,fr-KM -921929 -43.21579 --11.362381 -44.538223 --12.387857 - - - -KN -Saint Kitts and Nevis -659 -KNA -SC -NA -North America -Basseterre -261.0 -51134 -XCD -en-KN -3575174 --62.86956 -17.420118 --62.543266 -17.095343 - - - -KP -North Korea -408 -PRK -KN -AS -Asia -Pyongyang -120540.0 -22912177 -KPW -ko-KP -1873107 -124.315887 -43.006054 -130.674866 -37.673332 -###-### - - -KR -South Korea -410 -KOR -KS -AS -Asia -Seoul -98480.0 -48422644 -KRW -ko-KR,en -1835841 -125.887442375577 -38.5933891092225 -129.583016157998 -33.1954102977009 -SEOUL ###-### - - -KW -Kuwait -414 -KWT -KU -AS -Asia -Kuwait City -17820.0 -2789132 -KWD -ar-KW,en -285570 -46.555557 -30.095945 -48.431473 -28.524611 -##### - - -KY -Cayman Islands -136 -CYM -CJ -NA -North America -George Town -262.0 -44270 -KYD -en-KY -3580718 --81.432777 -19.7617 --79.727272 -19.263029 - - - -KZ -Kazakhstan -398 -KAZ -KZ -AS -Asia -Astana -2717300.0 -15340000 -KZT -kk,ru -1522867 -46.491859 -55.451195 -87.312668 -40.936333 -###### - - -LA -Laos -418 -LAO -LA -AS -Asia -Vientiane -236800.0 -6368162 -LAK -lo,fr,en -1655842 -100.093056 -22.500389 -107.697029 -13.910027 -##### - - -LB -Lebanon -422 -LBN -LE -AS -Asia -Beirut -10400.0 -4125247 -LBP -ar-LB,fr-LB,en,hy -272103 -35.114277 -34.691418 -36.639194 -33.05386 -#### ####|#### - - -LC -Saint Lucia -662 -LCA -ST -NA -North America -Castries -616.0 -160922 -XCD -en-LC -3576468 --61.07995730159752 -14.110317287646 --60.8732306422271 -13.7072692224982 - - - -LI -Liechtenstein -438 -LIE -LS -EU -Europe -Vaduz -160.0 -35000 -CHF -de-LI -3042058 -9.47167359782014 -47.2706251386959 -9.63564281136796 -47.0484284123471 -#### - - -LK -Sri Lanka -144 -LKA -CE -AS -Asia -Colombo -65610.0 -21513990 -LKR -si,ta,en -1227603 -79.652916 -9.831361 -81.881279 -5.916833 -##### - - -LR -Liberia -430 -LBR -LI -AF -Africa -Monrovia -111370.0 -3685076 -LRD -en-LR -2275384 --11.492083 -8.551791 --7.365113 -4.353057 -#### - - -LS -Lesotho -426 -LSO -LT -AF -Africa -Maseru -30355.0 -1919552 -LSL -en-LS,st,zu,xh -932692 -27.011229998 --28.5708 -29.4557099420001 --30.6755750029999 -### - - -LT -Lithuania -440 -LTU -LH -EU -Europe -Vilnius -65200.0 -2944459 -EUR -lt,ru,pl -597427 -20.941528 -56.446918 -26.871944 -53.901306 -LT-##### - - -LU -Luxembourg -442 -LUX -LU -EU -Europe -Luxembourg -2586.0 -497538 -EUR -lb,de-LU,fr-LU -2960313 -5.735698938390786 -50.182772453796446 -6.5308980672559525 -49.447858677765716 -L-#### - - -LV -Latvia -428 -LVA -LG -EU -Europe -Riga -64589.0 -2217969 -EUR -lv,ru,lt -458258 -20.9719557460935 -58.0856982477268 -28.2412717372783 -55.6747774931332 -LV-#### - - -LY -Libya -434 -LBY -LY -AF -Africa -Tripoli -1759540.0 -6461454 -LYD -ar-LY,it,en -2215636 -9.38702 -33.168999 -25.150612 -19.508045 - - - -MA -Morocco -504 -MAR -MO -AF -Africa -Rabat -446550.0 -33848242 -MAD -ar-MA,ber,fr -2542007 --13.168586 -35.9224966985384 --0.991750000000025 -27.662115 -##### - - -MC -Monaco -492 -MCO -MN -EU -Europe -Monaco -1.95 -32965 -EUR -fr-MC,en,it -2993457 -7.408962249755859 -43.75196717037228 -7.439939260482788 -43.72472839869377 -##### - - -MD -Moldova -498 -MDA -MD -EU -Europe -Chişinău -33843.0 -4324000 -MDL -ro,ru,gag,tr -617790 -26.618944 -48.490166 -30.135445 -45.468887 -MD-#### - - -ME -Montenegro -499 -MNE -MJ -EU -Europe -Podgorica -14026.0 -666730 -EUR -sr,hu,bs,sq,hr,rom -3194884 -18.461306 -43.570137 -20.358833 -41.850166 -##### - - -MF -Saint Martin -663 -MAF -RN -NA -North America -Marigot -53.0 -35925 -EUR -fr -3578421 --63.15036103890611 -18.125295191246206 --63.01059106320133 -18.04717219103021 -##### - - -MG -Madagascar -450 -MDG -MA -AF -Africa -Antananarivo -587040.0 -21281844 -MGA -fr-MG,mg -1062947 -43.224876 --11.945433 -50.48378 --25.608952 -### - - -MH -Marshall Islands -584 -MHL -RM -OC -Oceania -Majuro -181.3 -65859 -USD -mh,en-MH -2080185 -165.524918 -14.62 -171.931808 -5.587639 -#####-#### - - -MK -Macedonia -807 -MKD -MK -EU -Europe -Skopje -25333.0 -2062294 -MKD -mk,sq,tr,rmm,sr -718075 -20.464695 -42.361805 -23.038139 -40.860195 -#### - - -ML -Mali -466 -MLI -ML -AF -Africa -Bamako -1240000.0 -13796354 -XOF -fr-ML,bm -2453866 --12.242614 -25.000002 -4.244968 -10.159513 - - - -MM -Myanmar [Burma] -104 -MMR -BM -AS -Asia -Naypyitaw -678500.0 -53414374 -MMK -my -1327865 -92.189278 -28.543249 -101.176781 -9.784583 -##### - - -MN -Mongolia -496 -MNG -MG -AS -Asia -Ulan Bator -1565000.0 -3086918 -MNT -mn,ru -2029969 -87.749664 -52.154251 -119.924309 -41.567638 -###### - - -MO -Macao -446 -MAC -MC -AS -Asia -Macao -254.0 -449198 -MOP -zh,zh-MO,pt -1821275 -113.528946 -22.222334 -113.565834 -22.180389 - - - -MP -Northern Mariana Islands -580 -MNP -CQ -OC -Oceania -Saipan -477.0 -53883 -USD -fil,tl,zh,ch-MP,en-MP -4041468 -144.88626 -20.55344 -146.06528 -14.11023 -##### - - -MQ -Martinique -474 -MTQ -MB -NA -North America -Fort-de-France -1100.0 -432900 -EUR -fr-MQ -3570311 --61.230118 -14.878819 --60.81551 -14.392262 -##### - - -MR -Mauritania -478 -MRT -MR -AF -Africa -Nouakchott -1030700.0 -3205060 -MRO -ar-MR,fuc,snk,fr,mey,wo -2378080 --17.066521 -27.298073 --4.827674 -14.715547 - - - -MS -Montserrat -500 -MSR -MH -NA -North America -Plymouth -102.0 -9341 -XCD -en-MS -3578097 --62.24138237036129 -16.824060205313184 --62.144100129608205 -16.674768935441556 - - - -MT -Malta -470 -MLT -MT -EU -Europe -Valletta -316.0 -403000 -EUR -mt,en-MT -2562770 -14.1834251000001 -36.0821530995456 -14.5764915000002 -35.8061835000002 -@@@ #### - - -MU -Mauritius -480 -MUS -MP -AF -Africa -Port Louis -2040.0 -1294104 -MUR -en-MU,bho,fr -934292 -56.512718 --10.319255 -63.500179 --20.525717 - - - -MV -Maldives -462 -MDV -MV -AS -Asia -Malé -300.0 -395650 -MVR -dv,en -1282028 -72.693222 -7.091587495414767 -73.637276 --0.692694 -##### - - -MW -Malawi -454 -MWI -MI -AF -Africa -Lilongwe -118480.0 -15447500 -MWK -ny,yao,tum,swk -927384 -32.67395 --9.367541 -35.916821 --17.125 - - - -MX -Mexico -484 -MEX -MX -NA -North America -Mexico City -1972550.0 -112468855 -MXN -es-MX -3996063 --118.453949 -32.716759 --86.703392 -14.532866 -##### - - -MY -Malaysia -458 -MYS -MY -AS -Asia -Kuala Lumpur -329750.0 -28274729 -MYR -ms-MY,en,zh,ta,te,ml,pa,th -1733045 -99.643448 -7.363417 -119.267502 -0.855222 -##### - - -MZ -Mozambique -508 -MOZ -MZ -AF -Africa -Maputo -801590.0 -22061451 -MZN -pt-MZ,vmw -1036973 -30.217319 --10.471883 -40.842995 --26.868685 -#### - - -NA -Namibia -516 -NAM -WA -AF -Africa -Windhoek -825418.0 -2128471 -NAD -en-NA,af,de,hz,naq -3355338 -11.71563 --16.959894 -25.256701 --28.97143 - - - -NC -New Caledonia -540 -NCL -NC -OC -Oceania -Noumea -19060.0 -216494 -XPF -fr-NC -2139685 -163.564667 --19.549778 -168.129135 --22.698 -##### - - -NE -Niger -562 -NER -NG -AF -Africa -Niamey -1267000.0 -15878271 -XOF -fr-NE,ha,kr,dje -2440476 -0.16625 -23.525026 -15.995643 -11.696975 -#### - - -NF -Norfolk Island -574 -NFK -NF -OC -Oceania -Kingston -34.6 -1828 -AUD -en-NF -2155115 -167.91543230151365 --28.995170686948427 -167.99773740209957 --29.063076742954735 -#### - - -NG -Nigeria -566 -NGA -NI -AF -Africa -Abuja -923768.0 -154000000 -NGN -en-NG,ha,yo,ig,ff -2328926 -2.668432 -13.892007 -14.680073 -4.277144 -###### - - -NI -Nicaragua -558 -NIC -NU -NA -North America -Managua -129494.0 -5995928 -NIO -es-NI,en -3617476 --87.690308 -15.025909 --82.738289 -10.707543 -###-###-# - - -NL -Netherlands -528 -NLD -NL -EU -Europe -Amsterdam -41526.0 -16645000 -EUR -nl-NL,fy-NL -2750405 -3.35837827202 -53.5157125645109 -7.22749859212922 -50.7503674993741 -#### @@ - - -NO -Norway -578 -NOR -NO -EU -Europe -Oslo -324220.0 -5009150 -NOK -no,nb,nn,se,fi -3144096 -4.64182374183584 -71.1854764998959 -31.063740342248376 -57.97987783489344 -#### - - -NP -Nepal -524 -NPL -NP -AS -Asia -Kathmandu -140800.0 -28951852 -NPR -ne,en -1282988 -80.056274 -30.43339 -88.199333 -26.356722 -##### - - -NR -Nauru -520 -NRU -NR -OC -Oceania -Yaren -21.0 -10065 -AUD -na,en-NR -2110425 -166.899033 --0.504306 -166.945282 --0.552333 - - - -NU -Niue -570 -NIU -NE -OC -Oceania -Alofi -260.0 -2166 -NZD -niu,en-NU -4036232 --169.951004 --18.951069 --169.775177 --19.152193 - - - -NZ -New Zealand -554 -NZL -NZ -OC -Oceania -Wellington -268680.0 -4252277 -NZD -en-NZ,mi -2186224 -166.7155 --34.389668 --180.0 --47.286026 -#### - - -OM -Oman -512 -OMN -MU -AS -Asia -Muscat -212460.0 -2967717 -OMR -ar-OM,en,bal,ur -286963 -51.882 -26.387972 -59.836582 -16.64575 -### - - -PA -Panama -591 -PAN -PM -NA -North America -Panama City -78200.0 -3410676 -PAB -es-PA,en -3703430 --83.0523988577088 -9.6474132494631 --77.1563637579897 -7.20236920646422 - - - -PE -Peru -604 -PER -PE -SA -South America -Lima -1285220.0 -29907003 -PEN -es-PE,qu,ay -3932488 --81.326744 --0.012977 --68.677986 --18.349728 - - - -PF -French Polynesia -258 -PYF -FP -OC -Oceania -Papeete -4167.0 -270485 -XPF -fr-PF,ty -4030656 --152.877167 --7.903573 --134.929825 --27.653572 -##### - - -PG -Papua New Guinea -598 -PNG -PP -OC -Oceania -Port Moresby -462840.0 -6064515 -PGK -en-PG,ho,meu,tpi -2088628 -140.842865 --1.318639 -155.96344 --11.657861 -### - - -PH -Philippines -608 -PHL -RP -AS -Asia -Manila -300000.0 -99900177 -PHP -tl,en-PH,fil,ceb,tgl,ilo,hil,war,pam,bik,bcl,pag,mrw,tsg,mdh,cbk,krj,sgd,msb,akl,ibg,yka,mta,abx -1694008 -116.9288644959 -21.1218854788318 -126.60497402182328 -4.64209796365014 -#### - - -PK -Pakistan -586 -PAK -PK -AS -Asia -Islamabad -803940.0 -184404791 -PKR -ur-PK,en-PK,pa,sd,ps,brh -1168579 -60.878613 -37.097 -77.840919 -23.786722 -##### - - -PL -Poland -616 -POL -PL -EU -Europe -Warsaw -312685.0 -38500000 -PLN -pl -798544 -14.1228850233809 -54.8357886595169 -24.1457828491313 -49.0020465193443 -##-### - - -PM -Saint Pierre and Miquelon -666 -SPM -SB -NA -North America -Saint-Pierre -242.0 -7012 -EUR -fr-PM -3424932 --56.40709223087083 -47.14376802942701 --56.1253298443454 -46.78264970849848 -##### - - -PN -Pitcairn Islands -612 -PCN -PC -OC -Oceania -Adamstown -47.0 -46 -NZD -en-PN -4030699 --128.35699011119425 --24.3299386198549 --124.77285 --24.672565 - - - -PR -Puerto Rico -630 -PRI -RQ -NA -North America -San Juan -9104.0 -3916632 -USD -en-PR,es-PR -4566966 --67.942726 -18.520166 --65.2430816766763 -17.926405 -#####-#### - - -PS -Palestine -275 -PSE -WE -AS -Asia - -5970.0 -3800000 -ILS -ar-PS -6254930 -34.21665954589844 -32.54638671875 -35.5732955932617 -31.216541290283203 - - - -PT -Portugal -620 -PRT -PO -EU -Europe -Lisbon -92391.0 -10676000 -EUR -pt-PT,mwl -2264397 --9.50052660716588 -42.154311127408 --6.18915930748288 -36.96125 -####-### - - -PW -Palau -585 -PLW -PS -OC -Oceania -Melekeok -458.0 -19907 -USD -pau,sov,en-PW,tox,ja,fil,zh -1559582 -131.11788 -8.46966 -134.72307 -2.8036 -96940 - - -PY -Paraguay -600 -PRY -PA -SA -South America -Asunción -406750.0 -6375830 -PYG -es-PY,gn -3437598 --62.6446174378624 --19.2896000004762 --54.2589239104835 --27.5918335646318 -#### - - -QA -Qatar -634 -QAT -QA -AS -Asia -Doha -11437.0 -840926 -QAR -ar-QA,es -289688 -50.757221 -26.154722 -51.636639 -24.482944 - - - -RE -Réunion -638 -REU -RE -AF -Africa -Saint-Denis -2517.0 -776948 -EUR -fr-RE -935317 -55.21219224792685 --20.868391324576944 -55.838193901930026 --21.383747301469107 -##### - - -RO -Romania -642 -ROU -RO -EU -Europe -Bucharest -237500.0 -21959278 -RON -ro,hu,rom -798549 -20.2619949052262 -48.2653912058468 -29.7152986907701 -43.6190166499833 -###### - - -RS -Serbia -688 -SRB -RI -EU -Europe -Belgrade -88361.0 -7344847 -RSD -sr,hu,bs,rom -6290252 -18.817020416259766 -46.18138885498047 -23.00499725341797 -42.232215881347656 -###### - - -RU -Russia -643 -RUS -RS -EU -Europe -Moscow -1.71E7 -140702000 -RUB -ru,tt,xal,cau,ady,kv,ce,tyv,cv,udm,tut,mns,bua,myv,mdf,chm,ba,inh,tut,kbd,krc,av,sah,nog -2017370 -19.25 -81.857361 --169.05 -41.188862 -###### - - -RW -Rwanda -646 -RWA -RW -AF -Africa -Kigali -26338.0 -11055976 -RWF -rw,en-RW,fr-RW,sw -49518 -28.8617308206209 --1.04716670707785 -30.8997466415943 --2.84023010213747 - - - -SA -Saudi Arabia -682 -SAU -SA -AS -Asia -Riyadh -1960582.0 -25731776 -SAR -ar-SA -102358 -34.495693 -32.158333 -55.66658400000006 -16.3795000261256 -##### - - -SB -Solomon Islands -090 -SLB -BP -OC -Oceania -Honiara -28450.0 -559198 -SBD -en-SB,tpi -2103350 -155.508606 --6.589611 -166.980865 --11.850555 - - - -SC -Seychelles -690 -SYC -SE -AF -Africa -Victoria -455.0 -88340 -SCR -en-SC,fr-SC -241170 -46.204769 --4.283717 -56.29770287937299 --9.753867 - - - -SD -Sudan -729 -SDN -SU -AF -Africa -Khartoum -1861484.0 -35000000 -SDG -ar-SD,en,fia -366755 -21.827774047851562 -22.232219696044922 -38.60749816894531 -8.684720993041992 -##### - - -SE -Sweden -752 -SWE -SW -EU -Europe -Stockholm -449964.0 -9828655 -SEK -sv-SE,se,sma,fi-SE -2661886 -11.109499387126 -69.0599672666879 -24.155245238099 -55.3374438220002 -### ## - - -SG -Singapore -702 -SGP -SN -AS -Asia -Singapore -692.7 -4701069 -SGD -cmn,en-SG,ms-SG,ta-SG,zh-SG -1880251 -103.638275 -1.471278 -104.007469 -1.258556 -###### - - -SH -Saint Helena -654 -SHN -SH -AF -Africa -Jamestown -410.0 -7460 -SHP -en-SH -3370751 --14.42123 --7.887815 --5.638753 --16.019543 -STHL 1ZZ - - -SI -Slovenia -705 -SVN -SI -EU -Europe -Ljubljana -20273.0 -2007000 -EUR -sl,sh -3190538 -13.3753342064709 -46.8766275518195 -16.6106311807 -45.421812998164 -#### - - -SJ -Svalbard and Jan Mayen -744 -SJM -SV -EU -Europe -Longyearbyen -62049.0 -2550 -NOK -no,ru -607072 -17.699389 -80.762085 -33.287334 -79.220306 -#### - - -SK -Slovakia -703 -SVK -LO -EU -Europe -Bratislava -48845.0 -5455000 -EUR -sk,hu -3057568 -16.84775 -49.603168 -22.570444 -47.728111 -### ## - - -SL -Sierra Leone -694 -SLE -SL -AF -Africa -Freetown -71740.0 -5245695 -SLL -en-SL,men,tem -2403846 --13.307631 -10.0 --10.284238 -6.929611 - - - -SM -San Marino -674 -SMR -SM -EU -Europe -San Marino -61.2 -31477 -EUR -it-SM -3168068 -12.403605260165 -43.9920929668161 -12.5158490454421 -43.8937002210188 -4789# - - -SN -Senegal -686 -SEN -SG -AF -Africa -Dakar -196190.0 -12323252 -XOF -fr-SN,wo,fuc,mnk -2245662 --17.535236 -16.691633 --11.355887 -12.307275 -##### - - -SO -Somalia -706 -SOM -SO -AF -Africa -Mogadishu -637657.0 -10112453 -SOS -so-SO,ar-SO,it,en-SO -51537 -40.986595 -11.979166 -51.412636 --1.674868 -@@ ##### - - -SR -Suriname -740 -SUR -NS -SA -South America -Paramaribo -163270.0 -492829 -SRD -nl-SR,en,srn,hns,jv -3382998 --58.086563 -6.004546 --53.977493 -1.831145 - - - -SS -South Sudan -728 -SSD -OD -AF -Africa -Juba -644329.0 -8260490 -SSP -en -7909807 -24.140274047851562 -12.219148635864258 -35.9405517578125 -3.493394374847412 - - - -ST -São Tomé and Príncipe -678 -STP -TP -AF -Africa -São Tomé -1001.0 -175808 -STD -pt-ST -2410758 -6.47017 -1.701323 -7.466374 -0.024766 - - - -SV -El Salvador -222 -SLV -ES -NA -North America -San Salvador -21040.0 -6052064 -USD -es-SV -3585968 --90.128662 -14.445067 --87.692162 -13.148679 -CP #### - - -SX -Sint Maarten -534 -SXM -NN -NA -North America -Philipsburg -21.0 -37429 -ANG -nl,en -7609695 --63.14146165934278 -18.065188278978088 --63.0104194322962 -18.006632279377143 - - - -SY -Syria -760 -SYR -SY -AS -Asia -Damascus -185180.0 -22198110 -SYP -ar-SY,ku,hy,arc,fr,en -163843 -35.727222 -37.319138 -42.385029 -32.310665 - - - -SZ -Swaziland -748 -SWZ -WZ -AF -Africa -Mbabane -17363.0 -1354051 -SZL -en-SZ,ss-SZ -934841 -30.794107 --25.719648 -32.13726 --27.317101 -@### - - -TC -Turks and Caicos Islands -796 -TCA -TK -NA -North America -Cockburn Town -430.0 -20556 -USD -en-TC -3576916 --72.483871 -21.961878 --71.123642 -21.422626 -TKCA 1ZZ - - -TD -Chad -148 -TCD -CD -AF -Africa -N'Djamena -1284000.0 -10543464 -XAF -fr-TD,ar-TD,sre -2434508 -13.473475 -23.450369 -24.002661 -7.441068 - - - -TF -French Southern Territories -260 -ATF -FS -AN -Antarctica -Port-aux-Français -7829.0 -140 -EUR -fr -1546748 -50.170258 --37.790722 -77.598808 --49.735184 - - - -TG -Togo -768 -TGO -TO -AF -Africa -Lomé -56785.0 -6587239 -XOF -fr-TG,ee,hna,kbp,dag,ha -2363686 --0.147324 -11.138977 -1.806693 -6.104417 - - - -TH -Thailand -764 -THA -TH -AS -Asia -Bangkok -514000.0 -67089500 -THB -th,en -1605651 -97.345642 -20.463194 -105.639389 -5.61 -##### - - -TJ -Tajikistan -762 -TJK -TI -AS -Asia -Dushanbe -143100.0 -7487489 -TJS -tg,ru -1220409 -67.387138 -41.042252 -75.137222 -36.674137 -###### - - -TK -Tokelau -772 -TKL -TL -OC -Oceania - -10.0 -1466 -NZD -tkl,en-TK -4031074 --172.50033569335938 --8.553613662719727 --171.21142578125 --9.381111145019531 - - - -TL -East Timor -626 -TLS -TT -OC -Oceania -Dili -15007.0 -1154625 -USD -tet,pt-TL,id,en -1966436 -124.04464721679688 --8.12687015533447 -127.34211730957031 --9.504650115966797 - - - -TM -Turkmenistan -795 -TKM -TX -AS -Asia -Ashgabat -488100.0 -4940916 -TMT -tk,ru,uz -1218197 -52.441444 -42.795555 -66.684303 -35.141083 -###### - - -TN -Tunisia -788 -TUN -TS -AF -Africa -Tunis -163610.0 -10589025 -TND -ar-TN,fr -2464461 -7.524833 -37.543915 -11.598278 -30.240417 -#### - - -TO -Tonga -776 -TON -TN -OC -Oceania -Nuku'alofa -748.0 -122580 -TOP -to,en-TO -4032283 --175.682266 --15.562988 --173.907578 --21.455057 - - - -TR -Turkey -792 -TUR -TU -AS -Asia -Ankara -780580.0 -77804122 -TRY -tr-TR,ku,diq,az,av -298795 -25.668501 -42.107613 -44.834999 -35.815418 -##### - - -TT -Trinidad and Tobago -780 -TTO -TD -NA -North America -Port of Spain -5128.0 -1328019 -TTD -en-TT,hns,fr,es,zh -3573591 --61.923771 -11.338342 --60.517933 -10.036105 - - - -TV -Tuvalu -798 -TUV -TV -OC -Oceania -Funafuti -26.0 -10472 -AUD -tvl,en,sm,gil -2110297 -176.064865 --5.641972 -179.863281 --10.801169 - - - -TW -Taiwan -158 -TWN -TW -AS -Asia -Taipei -35980.0 -22894384 -TWD -zh-TW,zh,nan,hak -1668284 -119.534691 -25.3002899036181 -122.006739823315 -21.896606934717 -##### - - -TZ -Tanzania -834 -TZA -TZ -AF -Africa -Dodoma -945087.0 -41892895 -TZS -sw-TZ,en,ar -149590 -29.327168 --0.990736 -40.443222 --11.745696 - - - -UA -Ukraine -804 -UKR -UP -EU -Europe -Kiev -603700.0 -45415596 -UAH -uk,ru-UA,rom,pl,hu -690791 -22.128889 -52.369362 -40.20739 -44.390415 -##### - - -UG -Uganda -800 -UGA -UG -AF -Africa -Kampala -236040.0 -33398682 -UGX -en-UG,lg,sw,ar -226074 -29.573465338129 -4.23136926690327 -35.0010535324228 --1.48153052848838 - - - -UM -U.S. Minor Outlying Islands -581 -UMI - -OC -Oceania - -0.0 -0 -USD -en-UM -5854968 --177.392029 -28.219814 -166.654526 --0.389006 - - - -US -United States -840 -USA -US -NA -North America -Washington -9629091.0 -310232863 -USD -en-US,es-US,haw,fr -6252001 --124.733253 -49.388611 --66.954811 -24.544245 -#####-#### - - -UY -Uruguay -858 -URY -UY -SA -South America -Montevideo -176220.0 -3477000 -UYU -es-UY -3439705 --58.4393489790361 --30.0855024328825 --53.1810509360802 --34.9740543027064 -##### - - -UZ -Uzbekistan -860 -UZB -UZ -AS -Asia -Tashkent -447400.0 -27865738 -UZS -uz,ru,tg -1512440 -55.996639 -45.575001 -73.132278 -37.184444 -###### - - -VA -Vatican City -336 -VAT -VT -EU -Europe -Vatican City -0.44 -921 -EUR -la,it,fr -3164670 -12.44570678169205 -41.90743830885576 -12.45837546629481 -41.90027960306854 -##### - - -VC -Saint Vincent and the Grenadines -670 -VCT -VC -NA -North America -Kingstown -389.0 -104217 -XCD -en-VC,fr -3577815 --61.46090317727658 -13.377834 --61.11388 -12.583984810969037 - - - -VE -Venezuela -862 -VEN -VE -SA -South America -Caracas -912050.0 -27223228 -VEF -es-VE -3625428 --73.354073 -12.201903 --59.80378 -0.626311 -#### - - -VG -British Virgin Islands -092 -VGB -VI -NA -North America -Road Town -153.0 -21730 -USD -en-VG -3577718 --64.71312752730364 -18.757221 --64.268768 -18.383710898211305 - - - -VI -U.S. Virgin Islands -850 -VIR -VQ -NA -North America -Charlotte Amalie -352.0 -108708 -USD -en-VI -4796775 --65.101333 -18.415382 --64.565193 -17.673931 -#####-#### - - -VN -Vietnam -704 -VNM -VM -AS -Asia -Hanoi -329560.0 -89571130 -VND -vi,en,fr,zh,km -1562822 -102.148224 -23.388834 -109.464638 -8.559611 -###### - - -VU -Vanuatu -548 -VUT -NH -OC -Oceania -Port Vila -12200.0 -221552 -VUV -bi,en-VU,fr-VU -2134431 -166.524979 --13.073444 -169.904785 --20.248945 - - - -WF -Wallis and Futuna -876 -WLF -WF -OC -Oceania -Mata-Utu -274.0 -16025 -XPF -wls,fud,fr-WF -4034749 --178.1848112896414 --13.216758181061444 --176.16174317718253 --14.314559989820843 -##### - - -WS -Samoa -882 -WSM -WS -OC -Oceania -Apia -2944.0 -192001 -WST -sm,en-WS -4034894 --172.798599 --13.432207 --171.415741 --14.040939 - - - -XK -Kosovo -0 -XKX -KV -EU -Europe -Pristina -10908.0 -1800000 -EUR -sq,sr -831053 -19.977481504492914 -43.2682495807952 -21.80335088694943 -41.856369601859925 - - - -YE -Yemen -887 -YEM -YM -AS -Asia -Sanaa -527970.0 -23495361 -YER -ar-YE -69543 -42.5325394314234 -18.9999989031009 -54.5305388163283 -12.1110910264462 - - - -YT -Mayotte -175 -MYT -MF -AF -Africa -Mamoudzou -374.0 -159042 -EUR -fr-YT -1024031 -45.03796 --12.648891 -45.29295 --13.000132 -##### - - -ZA -South Africa -710 -ZAF -SF -AF -Africa -Pretoria -1219912.0 -49000000 -ZAR -zu,xh,af,nso,en-ZA,tn,st,ts,ss,ve,nr -953987 -16.45189 --22.1250300579999 -32.944984945 --34.8341700029999 -#### - - -ZM -Zambia -894 -ZMB -ZA -AF -Africa -Lusaka -752614.0 -13460305 -ZMW -en-ZM,bem,loz,lun,lue,ny,toi -895949 -21.999371 --8.22436 -33.705704 --18.079473 -##### - - -ZW -Zimbabwe -716 -ZWE -ZI -AF -Africa -Harare -390580.0 -13061000 -ZWL -en-ZW,sn,nr,nd -878675 -25.237028 --15.608835 -33.056305 --22.417738 - - + + AD + Andorra + 020 + AND + AN + EU + Europe + Andorra la Vella + 468.0 + 77006 + EUR + ca + 3041565 + 1.413760001000071 + 42.65576500000003 + 1.786576000000025 + 42.42874300100004 + AD### + + + AE + United Arab Emirates + 784 + ARE + AE + AS + Asia + Abu Dhabi + 82880.0 + 9630959 + AED + ar-AE,fa,en,hi,ur + 290557 + 51.5904085340001 + 26.0693916590001 + 56.381222289 + 22.6315119400001 + + + + AF + Afghanistan + 004 + AFG + AF + AS + Asia + Kabul + 647500.0 + 37172386 + AFN + fa-AF,ps,uz-AF,tk + 1149361 + 60.4720833972263 + 38.4907920755748 + 74.8894511481168 + 29.3770645357176 + + + + AG + Antigua and Barbuda + 028 + ATG + AC + NA + North America + St John's + 443.0 + 96286 + XCD + en-AG + 3576396 + -61.90630722 + 17.72910877443121 + -61.672164917 + 16.9986381530001 + + + + AI + Anguilla + 660 + AIA + AV + NA + North America + The Valley + 102.0 + 13254 + XCD + en-AI + 3573511 + -63.16808989603879 + 18.276901971658063 + -62.96655544577948 + 18.160292974311673 + + + + AL + Albania + 008 + ALB + AL + EU + Europe + Tirana + 28748.0 + 2866376 + ALL + sq,el + 783754 + 19.2639112711741 + 42.6611669383269 + 21.0574334835312 + 39.6448624829142 + #### + + + AM + Armenia + 051 + ARM + AM + AS + Asia + Yerevan + 29800.0 + 2951776 + AMD + hy + 174982 + 43.447417525 + 41.3009930000001 + 46.6342220000001 + 38.840244 + ###### + + + AO + Angola + 024 + AGO + AO + AF + Africa + Luanda + 1246700.0 + 30809762 + AOA + pt-AO + 3351879 + 11.679219 + -4.376826 + 24.082119 + -18.042076 + + + + AQ + Antarctica + 010 + ATA + AY + AN + Antarctica + + 1.4E7 + 0 + + + 6697173 + -179.9999 + -60.515533 + 179.9999 + -89.9999 + + + + AR + Argentina + 032 + ARG + AR + SA + South America + Buenos Aires + 2766890.0 + 44494502 + ARS + es-AR,en,it,de,fr,gn + 3865483 + -73.566302817 + -21.777951173 + -53.637962552 + -55.0576984539999 + @####@@@ + + + AS + American Samoa + 016 + ASM + AQ + OC + Oceania + Pago Pago + 199.0 + 55465 + USD + en-AS,sm,to + 5880801 + -171.090042 + -11.047857 + -169.418925 + -14.373776 + #####-#### + + + AT + Austria + 040 + AUT + AU + EU + Europe + Vienna + 83858.0 + 8847037 + EUR + de-AT,hr,hu,sl + 2782113 + 9.53095237240833 + 49.0211627691393 + 17.1620685652599 + 46.3726520216244 + #### + + + AU + Australia + 036 + AUS + AS + OC + Oceania + Canberra + 7686850.0 + 24992369 + AUD + en-AU + 2077456 + 112.921113949 + -10.059130975 + 153.638727019 + -43.643194904 + #### + + + AW + Aruba + 533 + ABW + AA + NA + North America + Oranjestad + 193.0 + 105845 + AWG + nl-AW,pap,es,en + 3577279 + -70.0644737196045 + 12.623718127152925 + -69.86575120104982 + 12.411707706190716 + + + + AX + Åland + 248 + ALA + + EU + Europe + Mariehamn + 1580.0 + 26711 + EUR + sv-AX + 661882 + 19.317694 + 60.488861 + 21.011862 + 59.90675 + ##### + + + AZ + Azerbaijan + 031 + AZE + AJ + AS + Asia + Baku + 86600.0 + 9942334 + AZN + az,ru,hy + 587116 + 44.764683001 + 41.9123400010001 + 50.3700828550001 + 38.3922170010001 + AZ #### + + + BA + Bosnia and Herzegovina + 070 + BIH + BK + EU + Europe + Sarajevo + 51129.0 + 3323929 + BAM + bs,hr-BA,sr-BA + 3277605 + 15.728732108 + 45.276539649 + 19.6237016800001 + 42.555473846 + ##### + + + BB + Barbados + 052 + BRB + BB + NA + North America + Bridgetown + 431.0 + 286641 + BBD + en-BB + 3374084 + -59.6526374819999 + 13.3358612060001 + -59.420749664 + 13.0448331850001 + BB##### + + + BD + Bangladesh + 050 + BGD + BG + AS + Asia + Dhaka + 144000.0 + 161356039 + BDT + bn-BD,en + 1210997 + 88.028336 + 26.631945 + 92.673668 + 20.743334 + #### + + + BE + Belgium + 056 + BEL + BE + EU + Europe + Brussels + 30510.0 + 11422068 + EUR + nl-BE,fr-BE,de-BE + 2802361 + 2.54132898439873 + 51.5051118897455 + 6.40793743953125 + 49.496968483036 + #### + + + BF + Burkina Faso + 854 + BFA + UV + AF + Africa + Ouagadougou + 274200.0 + 19751535 + XOF + fr-BF,mos + 2361809 + -5.51324157299996 + 15.084033447 + 2.40435976900005 + 9.41047177500008 + + + + BG + Bulgaria + 100 + BGR + BU + EU + Europe + Sofia + 110910.0 + 7000039 + BGN + bg,tr-BG,rom + 732800 + 22.357156753 + 44.215451 + 28.6102771760001 + 41.2353414930001 + #### + + + BH + Bahrain + 048 + BHR + BA + AS + Asia + Manama + 665.0 + 1569439 + BHD + ar-BH,en,fa,ur + 290291 + 50.3158550000001 + 26.3308150010001 + 50.720622 + 25.790910001 + ####|### + + + BI + Burundi + 108 + BDI + BY + AF + Africa + Gitega + 27830.0 + 11175378 + BIF + fr-BI,rn + 433561 + 29.0009680000001 + -2.30973016299993 + 30.84954 + -4.46932899899997 + + + + BJ + Benin + 204 + BEN + BN + AF + Africa + Porto-Novo + 112620.0 + 11485048 + XOF + fr-BJ + 2395170 + 0.775412326000037 + 12.4086110000001 + 3.84306303800003 + 6.23477794100006 + + + + BL + Saint Barthélemy + 652 + BLM + TB + NA + North America + Gustavia + 21.0 + 8450 + EUR + fr + 3578476 + -62.8739118253784 + 17.928808791949283 + -62.788983372985854 + 17.878183227405575 + ##### + + + BM + Bermuda + 060 + BMU + BD + NA + North America + Hamilton + 53.0 + 63968 + BMD + en-BM,pt + 3573345 + -64.8870418687384 + 32.3909785046382 + -64.6473267161152 + 32.247240870129 + @@ ## + + + BN + Brunei + 096 + BRN + BX + AS + Asia + Bandar Seri Begawan + 5770.0 + 428962 + BND + ms-BN,en-BN + 1820814 + 114.075926291 + 5.04571171901151 + 115.364671704 + 4.00264384400003 + @@#### + + + BO + Bolivia + 068 + BOL + BL + SA + South America + Sucre + 1098580.0 + 11353142 + BOB + es-BO,qu,ay + 3923057 + -69.644939573 + -9.66932299899997 + -57.4538029999999 + -22.89809 + + + + BQ + Bonaire, Sint Eustatius, and Saba + 535 + BES + + NA + North America + Kralendijk + 328.0 + 18012 + USD + nl,pap,en + 7626844 + -68.42092654856276 + 12.312385778727828 + -68.19423837039591 + 12.024024222896262 + + + + BR + Brazil + 076 + BRA + BR + SA + South America + Brasília + 8511965.0 + 209469333 + BRL + pt-BR,es,en,fr + 3469034 + -73.985535 + 5.264877 + -32.392998 + -33.750706 + #####-### + + + BS + Bahamas + 044 + BHS + BF + NA + North America + Nassau + 13940.0 + 385640 + BSD + en-BS + 3572887 + -78.999528159018 + 26.919243 + -74.423874 + 22.852743 + + + + BT + Bhutan + 064 + BTN + BT + AS + Asia + Thimphu + 47000.0 + 754394 + BTN + dz + 1252634 + 88.7455215570001 + 28.246987001 + 92.12523192 + 26.702020985 + + + + BV + Bouvet Island + 074 + BVT + BV + AN + Antarctica + + 49.0 + 0 + NOK + + 3371123 + 3.286776428037342 + -54.3887383509872 + 3.434845577758324 + -54.4507993522734 + + + + BW + Botswana + 072 + BWA + BC + AF + Africa + Gaborone + 600370.0 + 2254126 + BWP + en-BW,tn-BW + 933860 + 19.998903 + -17.778136999 + 29.375304 + -26.907545 + + + + BY + Belarus + 112 + BLR + BO + EU + Europe + Minsk + 207600.0 + 9485386 + BYN + be,ru + 630336 + 23.1781980010001 + 56.1724940010001 + 32.776820001 + 51.262011 + ###### + + + BZ + Belize + 084 + BLZ + BH + NA + North America + Belmopan + 22966.0 + 383071 + BZD + en-BZ,es + 3582678 + -89.224815 + 18.496557 + -87.776985 + 15.8893 + + + + CA + Canada + 124 + CAN + CA + NA + North America + Ottawa + 9984670.0 + 37058856 + CAD + en-CA,fr-CA,iu + 6251999 + -141.0 + 83.110626 + -52.636291 + 41.67598 + @#@ #@# + + + CC + Cocos (Keeling) Islands + 166 + CCK + CK + AS + Asia + West Island + 14.0 + 628 + AUD + ms-CC,en + 1547376 + 96.816941408 + -12.072459094 + 96.929489344 + -12.208725839 + + + + CD + DR Congo + 180 + COD + CG + AF + Africa + Kinshasa + 2345410.0 + 84068091 + CDF + fr-CD,ln,ktu,kg,sw,lua + 203312 + 12.202361491 + 5.39200300000005 + 31.3146120000001 + -13.459034999 + + + + CF + Central African Republic + 140 + CAF + CT + AF + Africa + Bangui + 622984.0 + 4666377 + XAF + fr-CF,sg,ln,kg + 239880 + 14.4150980000001 + 11.017957 + 27.4583050000001 + 2.22305300000005 + + + + CG + Congo Republic + 178 + COG + CF + AF + Africa + Brazzaville + 342000.0 + 5244363 + XAF + fr-CG,kg,ln-CG + 2260494 + 11.1520760600001 + 3.70779100000004 + 18.65042119 + -5.04072158799994 + + + + CH + Switzerland + 756 + CHE + SZ + EU + Europe + Bern + 41290.0 + 8516543 + CHF + de-CH,fr-CH,it-CH,rm + 2658434 + 5.95661377423453 + 47.8098679329775 + 10.4934735095497 + 45.8191539516188 + #### + + + CI + Ivory Coast + 384 + CIV + IV + AF + Africa + Yamoussoukro + 322460.0 + 25069229 + XOF + fr-CI + 2287781 + -8.60205899999994 + 10.740015 + -2.49303099999997 + 4.36035248000007 + + + + CK + Cook Islands + 184 + COK + CW + OC + Oceania + Avarua + 240.0 + 21388 + NZD + en-CK,mi + 1899402 + -161.093658 + -10.023114 + -157.312134 + -21.944164 + + + + CL + Chile + 152 + CHL + CI + SA + South America + Santiago + 756950.0 + 18729160 + CLP + es-CL + 3895114 + -80.8370287079999 + -17.4977759459999 + -66.416152278 + -55.909795409 + ####### + + + CM + Cameroon + 120 + CMR + CM + AF + Africa + Yaoundé + 475440.0 + 25216237 + XAF + en-CM,fr-CM + 2233387 + 8.49843402900007 + 13.083334 + 16.1944080000001 + 1.65590000000003 + + + + CN + China + 156 + CHN + CH + AS + Asia + Beijing + 9596960.0 + 1411778724 + CNY + zh-CN,yue,wuu,dta,ug,za + 1814991 + 73.4994140000001 + 53.560974001 + 134.7754563 + 15.775416 + ###### + + + CO + Colombia + 170 + COL + CO + SA + South America + Bogotá + 1138910.0 + 49648685 + COP + es-CO + 3686110 + -81.735775648 + 13.38600323 + -66.8472153989999 + -4.22839224299997 + ###### + + + CR + Costa Rica + 188 + CRI + CS + NA + North America + San José + 51100.0 + 4999441 + CRC + es-CR,en + 3624060 + -85.9502523586265 + 11.2197589122308 + -82.552318987959 + 8.03962731803416 + ##### + + + CU + Cuba + 192 + CUB + CU + NA + North America + Havana + 110860.0 + 11338138 + CUP + es-CU,pap + 3562981 + -84.957428 + 23.226042 + -74.131775 + 19.828083 + CP ##### + + + CV + Cabo Verde + 132 + CPV + CV + AF + Africa + Praia + 4033.0 + 543767 + CVE + pt-CV + 3374766 + -25.3609161379999 + 17.204706193 + -22.6674270629999 + 14.8152942670001 + #### + + + CW + Curaçao + 531 + CUW + UC + NA + North America + Willemstad + 444.0 + 159849 + ANG + nl,pap + 7626836 + -69.157204 + 12.385672 + -68.733948 + 12.032745 + + + + CX + Christmas Island + 162 + CXR + KT + OC + Oceania + Flying Fish Cove + 135.0 + 1500 + AUD + en,zh,ms-CC + 2078138 + 105.533276992 + -10.412356007 + 105.712596992 + -10.5704829995 + #### + + + CY + Cyprus + 196 + CYP + CY + EU + Europe + Nicosia + 9250.0 + 1189265 + EUR + el-CY,tr-CY,en + 146669 + 32.271016385336786 + 35.69493443939431 + 34.5877096808548 + 34.632303001 + #### + + + CZ + Czechia + 203 + CZE + EZ + EU + Europe + Prague + 78866.0 + 10625695 + CZK + cs,sk + 3077311 + 12.0906691601139 + 51.0557782422661 + 18.8592743799298 + 48.551892864201 + ### ## + + + DE + Germany + 276 + DEU + GM + EU + Europe + Berlin + 357021.0 + 82927922 + EUR + de + 2921044 + 5.8663152683722 + 55.0583836008072 + 15.0418156516163 + 47.2701236047002 + ##### + + + DJ + Djibouti + 262 + DJI + DJ + AF + Africa + Djibouti + 23000.0 + 958920 + DJF + fr-DJ,ar,so-DJ,aa + 223816 + 41.7708460000001 + 12.7136967920001 + 43.4175099920001 + 10.9129530000001 + + + + DK + Denmark + 208 + DNK + DA + EU + Europe + Copenhagen + 43094.0 + 5797446 + DKK + da-DK,en,fo,de-DK + 2623032 + 8.07250975308422 + 57.3282078631757 + 15.1569721573943 + 54.5590783718363 + #### + + + DM + Dominica + 212 + DMA + DO + NA + North America + Roseau + 754.0 + 71625 + XCD + en-DM + 3575830 + -61.4808292002466 + 15.639901700674933 + -61.241630129651185 + 15.206540651392563 + + + + DO + Dominican Republic + 214 + DOM + DR + NA + North America + Santo Domingo + 48730.0 + 10627165 + DOP + es-DO + 3508796 + -72.0114723981787 + 19.9321257501267 + -68.3229591969468 + 17.5395066830409 + ##### + + + DZ + Algeria + 012 + DZA + AG + AF + Africa + Algiers + 2381740.0 + 42228429 + DZD + ar-DZ + 2589581 + -8.66761116299995 + 37.089801381 + 11.9984999060001 + 18.968147 + ##### + + + EC + Ecuador + 218 + ECU + EC + SA + South America + Quito + 283560.0 + 17084357 + USD + es-EC + 3658394 + -81.0836838953894 + 1.43523516349953 + -75.1871465547501 + -5.01615732302488 + @####@ + + + EE + Estonia + 233 + EST + EN + EU + Europe + Tallinn + 45226.0 + 1320884 + EUR + et,ru + 453733 + 21.8285886498081 + 59.6753143130129 + 28.2090381531431 + 57.5093097920079 + ##### + + + EG + Egypt + 818 + EGY + EG + AF + Africa + Cairo + 1001450.0 + 98423595 + EGP + ar-EG,en,fr + 357994 + 24.6967750000001 + 31.6709930000001 + 35.7935441020001 + 21.724952 + ##### + + + EH + Western Sahara + 732 + ESH + WI + AF + Africa + + 266000.0 + 273008 + MAD + ar,mey + 2461445 + -17.103182 + 27.669674 + -8.670276 + 20.774158 + + + + ER + Eritrea + 232 + ERI + ER + AF + Africa + Asmara + 121320.0 + 0 + ERN + aa-ER,ar,tig,kun,ti-ER + 338010 + 36.434007751 + 18.004838997 + 43.1368865700001 + 12.3543041790001 + + + + ES + Spain + 724 + ESP + SP + EU + Europe + Madrid + 504782.0 + 46723749 + EUR + es-ES,ca,gl,eu,oc + 2510769 + -9.30151567231899 + 43.7913565913767 + 4.32778473043961 + 36.0001044260548 + ##### + + + ET + Ethiopia + 231 + ETH + ET + AF + Africa + Addis Ababa + 1127127.0 + 109224559 + ETB + am,en-ET,om-ET,ti-ET,so-ET,sid + 337996 + 32.997734001 + 14.894214 + 48.0010560010001 + 3.40413700100004 + #### + + + FI + Finland + 246 + FIN + FI + EU + Europe + Helsinki + 337030.0 + 5518050 + EUR + fi-FI,sv-FI,smn + 660013 + 20.556944 + 70.096054 + 31.580944 + 59.808777 + ##### + + + FJ + Fiji + 242 + FJI + FJ + OC + Oceania + Suva + 18270.0 + 883483 + FJD + en-FJ,fj + 2205218 + 177.140015279982 + -12.4795295382484 + -178.424438 + -20.67597 + + + + FK + Falkland Islands + 238 + FLK + FK + SA + South America + Stanley + 12173.0 + 2638 + FKP + en-FK + 3474414 + -61.3474566739999 + -51.2331394719999 + -57.718087652 + -52.383984175 + + + + FM + Micronesia + 583 + FSM + FM + OC + Oceania + Palikir + 702.0 + 112640 + USD + en-FM,chk,pon,yap,kos,uli,woe,nkr,kpg + 2081918 + 137.33648 + 10.08904 + 163.03717 + 1.02629 + ##### + + + FO + Faroe Islands + 234 + FRO + FO + EU + Europe + Tórshavn + 1399.0 + 48497 + DKK + fo,da-FO + 2622320 + -7.688191677774624 + 62.3938884414274 + -6.25655957192113 + 61.3910302656013 + ### + + + FR + France + 250 + FRA + FR + EU + Europe + Paris + 547030.0 + 66987244 + EUR + fr-FR,frp,br,co,ca,eu,oc + 3017382 + -5.14127657354623 + 51.0889894407743 + 9.56009360694225 + 41.3645589826522 + ##### + + + GA + Gabon + 266 + GAB + GB + AF + Africa + Libreville + 267667.0 + 2119275 + XAF + fr-GA + 2400553 + 8.69940944700005 + 2.31810900100004 + 14.5269230000001 + -3.96180775999994 + + + + GB + United Kingdom + 826 + GBR + UK + EU + Europe + London + 244820.0 + 66488991 + GBP + en-GB,cy-GB,gd + 2635167 + -8.61772077108559 + 59.3607741849963 + 1.7689121033873 + 49.9028622252397 + @# #@@|@## #@@|@@# #@@|@@## #@@|@#@ #@@|@@#@ #@@|GIR0AA + + + GD + Grenada + 308 + GRD + GJ + NA + North America + St. George's + 344.0 + 111454 + XCD + en-GD + 3580239 + -61.80247620963 + 12.318283928171299 + -61.57676970108031 + 11.9869539231552 + + + + GE + Georgia + 268 + GEO + GG + AS + Asia + Tbilisi + 69700.0 + 3731000 + GEL + ka,ru,hy,az + 614540 + 40.006604 + 43.5866270000001 + 46.736119 + 41.054942 + #### + + + GF + French Guiana + 254 + GUF + FG + SA + South America + Cayenne + 91000.0 + 195506 + EUR + fr-GF + 3381670 + -54.6024155447667 + 5.74725188917531 + -51.619065827085 + 2.11107565187642 + ##### + + + GG + Guernsey + 831 + GGY + GK + EU + Europe + St Peter Port + 78.0 + 65228 + GBP + en,nrf + 3042362 + -2.673194593476069 + 49.731727816705416 + -2.1577152112246267 + 49.40764156876899 + @# #@@|@## #@@|@@# #@@|@@## #@@|@#@ #@@|@@#@ #@@|GIR0AA + + + GH + Ghana + 288 + GHA + GH + AF + Africa + Accra + 239460.0 + 29767108 + GHS + en-GH,ak,ee,tw + 2300660 + -3.26078599999994 + 11.174952907 + 1.19948138100006 + 4.73894544800004 + + + + GI + Gibraltar + 292 + GIB + GI + EU + Europe + Gibraltar + 6.5 + 33718 + GIP + en-GI,es,it,pt + 2411586 + -5.36626149743654 + 36.155439135670726 + -5.338285164001491 + 36.10903070140248 + + + + GL + Greenland + 304 + GRL + GL + NA + North America + Nuuk + 2166086.0 + 56025 + DKK + kl,da-GL,en + 3425505 + -73.04203 + 83.627357 + -11.312319 + 59.777401 + #### + + + GM + The Gambia + 270 + GMB + GA + AF + Africa + Banjul + 11300.0 + 2280102 + GMD + en-GM,mnk,wof,wo,ff + 2413451 + -16.8136100139999 + 13.825058106 + -13.791386179 + 13.063718062 + + + + GN + Guinea + 324 + GIN + GV + AF + Africa + Conakry + 245857.0 + 12414318 + GNF + fr-GN + 2420477 + -14.926619 + 12.67622 + -7.641071 + 7.193553 + + + + GP + Guadeloupe + 312 + GLP + GP + NA + North America + Basse-Terre + 1780.0 + 443000 + EUR + fr-GP + 3579143 + -61.5508178989899 + 16.5144923539361 + -61.0019590353041 + 15.8665030910918 + ##### + + + GQ + Equatorial Guinea + 226 + GNQ + EK + AF + Africa + Malabo + 28051.0 + 1308974 + XAF + es-GQ,fr,pt + 2309096 + 9.34069443 + 2.34792018 + 11.33743668 + 0.92086101 + + + + GR + Greece + 300 + GRC + GR + EU + Europe + Athens + 131940.0 + 10727668 + EUR + el-GR,en,fr + 390903 + 19.3736035624134 + 41.7484999849641 + 28.2470831714347 + 34.8020663391466 + ### ## + + + GS + South Georgia and South Sandwich Islands + 239 + SGS + SX + AN + Antarctica + Grytviken + 3903.0 + 30 + GBP + en + 3474415 + -38.0479509639999 + -53.980896636 + -26.252069712 + -59.46319341 + + + + GT + Guatemala + 320 + GTM + GT + NA + North America + Guatemala City + 108890.0 + 17247807 + GTQ + es-GT + 3595528 + -92.231143101 + 17.815695169 + -88.233001934 + 13.7400210010001 + ##### + + + GU + Guam + 316 + GUM + GQ + OC + Oceania + Hagåtña + 549.0 + 165768 + USD + en-GU,ch-GU + 4043988 + 144.618318 + 13.654402 + 144.956894 + 13.23376 + 969## + + + GW + Guinea-Bissau + 624 + GNB + PU + AF + Africa + Bissau + 36120.0 + 1874309 + XOF + pt-GW,pov + 2372248 + -16.717535 + 12.680789 + -13.636522 + 10.924265 + #### + + + GY + Guyana + 328 + GUY + GY + SA + South America + Georgetown + 214970.0 + 779004 + GYD + en-GY + 3378535 + -61.384762 + 8.557567 + -56.480251 + 1.17508 + + + + HK + Hong Kong + 344 + HKG + HK + AS + Asia + Hong Kong + 1092.0 + 7451000 + HKD + zh-HK,yue,zh,en + 1819730 + 113.839212676903 + 22.5619493557973 + 114.441993257571 + 22.1552256413502 + + + + HM + Heard and McDonald Islands + 334 + HMD + HM + AN + Antarctica + + 412.0 + 0 + AUD + + 1547314 + 72.596535 + -52.909416 + 73.859146 + -53.192001 + + + + HN + Honduras + 340 + HND + HO + NA + North America + Tegucigalpa + 112090.0 + 9587522 + HNL + es-HN,cab,miq + 3608932 + -89.350792 + 16.510256 + -83.155403 + 12.982411 + @@#### + + + HR + Croatia + 191 + HRV + HR + EU + Europe + Zagreb + 56542.0 + 4089400 + HRK + hr-HR,sr + 3202326 + 13.493222 + 46.5549629558487 + 19.427389 + 42.43589 + ##### + + + HT + Haiti + 332 + HTI + HA + NA + North America + Port-au-Prince + 27750.0 + 11123176 + HTG + ht,fr-HT + 3723988 + -74.478584 + 20.08782 + -71.613358 + 18.021032 + HT#### + + + HU + Hungary + 348 + HUN + HU + EU + Europe + Budapest + 93030.0 + 9768785 + HUF + hu-HU + 719819 + 16.113795 + 48.585336 + 22.896564336 + 45.7370495590001 + #### + + + ID + Indonesia + 360 + IDN + ID + AS + Asia + Jakarta + 1919440.0 + 267663435 + IDR + id,en,nl,jv + 1643084 + 95.0111465000001 + 5.90722980000004 + 141.0194 + -10.9431056999999 + ##### + + + IE + Ireland + 372 + IRL + EI + EU + Europe + Dublin + 70280.0 + 4853506 + EUR + en-IE,ga-IE + 2963597 + -10.4800035816853 + 55.3829431564742 + -5.99804990172185 + 51.4475491577615 + @@@ @@@@ + + + IL + Israel + 376 + ISR + IS + AS + Asia + + 20770.0 + 8883800 + ILS + he,ar-IL,en-IL, + 294640 + 34.267257 + 33.2908350000001 + 35.67033 + 29.490654862 + ####### + + + IM + Isle of Man + 833 + IMN + IM + EU + Europe + Douglas + 572.0 + 84077 + GBP + en,gv + 3042225 + -4.79430574571353 + 54.4178825685258 + -4.30802074695987 + 54.0536251033159 + @# #@@|@## #@@|@@# #@@|@@## #@@|@#@ #@@|@@#@ #@@|GIR0AA + + + IN + India + 356 + IND + IN + AS + Asia + New Delhi + 3287590.0 + 1352617328 + INR + en-IN,hi,bn,te,mr,ta,ur,gu,kn,ml,or,pa,as,bh,sat,ks,ne,sd,kok,doi,mni,sit,sa,fr,lus,inc + 1269750 + 68.4840183183648 + 35.524548272882 + 97.4152926679075 + 6.7559528993543 + ###### + + + IO + British Indian Ocean Territory + 086 + IOT + IO + AS + Asia + + 60.0 + 4000 + USD + en-IO + 1282588 + 71.259972 + -5.268333 + 72.493164 + -7.438028 + + + + IQ + Iraq + 368 + IRQ + IZ + AS + Asia + Baghdad + 437072.0 + 38433600 + IQD + ar-IQ,ku,hy + 99237 + 38.7936740000001 + 37.380746001 + 48.6117360000001 + 29.0612080000001 + ##### + + + IR + Iran + 364 + IRN + IR + AS + Asia + Tehran + 1648000.0 + 81800269 + IRR + fa-IR,ku + 130758 + 44.032638708 + 39.7822393340001 + 63.333337 + 25.060388566 + ########## + + + IS + Iceland + 352 + ISL + IC + EU + Europe + Reykjavik + 103000.0 + 353574 + ISK + is,en,de,da,sv,no + 2629691 + -24.5326753866625 + 66.5377933098397 + -13.4946206239501 + 63.394392778588 + ### + + + IT + Italy + 380 + ITA + IT + EU + Europe + Rome + 301230.0 + 60431283 + EUR + it-IT,de-IT,fr-IT,sc,ca,co,sl + 3175395 + 6.62662135986088 + 47.0917837415439 + 18.5203814091888 + 36.6440816661648 + ##### + + + JE + Jersey + 832 + JEY + JE + EU + Europe + Saint Helier + 116.0 + 90812 + GBP + en,fr,nrf + 3042142 + -2.260028 + 49.265057 + -2.022083 + 49.169834 + @# #@@|@## #@@|@@# #@@|@@## #@@|@#@ #@@|@@#@ #@@|GIR0AA + + + JM + Jamaica + 388 + JAM + JM + NA + North America + Kingston + 10991.0 + 2934855 + JMD + en-JM + 3489940 + -78.3690062954957 + 18.524766185516 + -76.1830989848426 + 17.7059966193696 + + + + JO + Jordan + 400 + JOR + JO + AS + Asia + Amman + 92300.0 + 9956011 + JOD + ar-JO,en + 248816 + 34.955471039 + 33.374735 + 39.3011540000001 + 29.1850360010001 + ##### + + + JP + Japan + 392 + JPN + JA + AS + Asia + Tokyo + 377835.0 + 126529100 + JPY + ja + 1861060 + 122.933653061 + 45.52295736 + 145.817458885 + 24.255169441 + ###-#### + + + KE + Kenya + 404 + KEN + KE + AF + Africa + Nairobi + 582650.0 + 51393010 + KES + en-KE,sw-KE + 192950 + 33.9098210000001 + 5.03342100100002 + 41.9069450000001 + -4.67989449199996 + ##### + + + KG + Kyrgyzstan + 417 + KGZ + KG + AS + Asia + Bishkek + 198500.0 + 6315800 + KGS + ky,uz,ru + 1527747 + 69.276611 + 43.238224 + 80.283165 + 39.172832 + ###### + + + KH + Cambodia + 116 + KHM + CB + AS + Asia + Phnom Penh + 181040.0 + 16249798 + KHR + km,fr,en + 1831722 + 102.339996 + 14.686417 + 107.627724 + 10.409083 + ##### + + + KI + Kiribati + 296 + KIR + KR + OC + Oceania + Tarawa + 811.0 + 115847 + AUD + en-KI,gil + 4030945 + 169.548692 + 3.93942799999973 + -150.2345115032905 + -11.4460499999991 + + + + KM + Comoros + 174 + COM + CN + AF + Africa + Moroni + 2170.0 + 832322 + KMF + ar,fr-KM + 921929 + 43.21579 + -11.362381 + 44.538223 + -12.387857 + + + + KN + St Kitts and Nevis + 659 + KNA + SC + NA + North America + Basseterre + 261.0 + 52441 + XCD + en-KN + 3575174 + -62.86483931213377 + 17.418152531334183 + -62.53964136573717 + 17.094276497441214 + + + + KP + North Korea + 408 + PRK + KN + AS + Asia + Pyongyang + 120540.0 + 25549819 + KPW + ko-KP + 1873107 + 124.315887 + 43.006054 + 130.674866 + 37.673332 + ###-### + + + KR + South Korea + 410 + KOR + KS + AS + Asia + Seoul + 98480.0 + 51635256 + KRW + ko-KR,en + 1835841 + 125.887442375577 + 38.5933891092225 + 129.583016157998 + 33.1954102977009 + ##### + + + KW + Kuwait + 414 + KWT + KU + AS + Asia + Kuwait City + 17820.0 + 4137309 + KWD + ar-KW,en + 285570 + 46.555557 + 30.095945 + 48.431473 + 28.524611 + ##### + + + KY + Cayman Islands + 136 + CYM + CJ + NA + North America + George Town + 262.0 + 64174 + KYD + en-KY + 3580718 + -81.432777 + 19.7617 + -79.727272 + 19.263029 + + + + KZ + Kazakhstan + 398 + KAZ + KZ + AS + Asia + Nur-Sultan + 2717300.0 + 18276499 + KZT + kk,ru + 1522867 + 46.4936720000001 + 55.441984001 + 87.3154150010001 + 40.5686884990001 + ###### + + + LA + Laos + 418 + LAO + LA + AS + Asia + Vientiane + 236800.0 + 7061507 + LAK + lo,fr,en + 1655842 + 100.083872 + 22.50904495 + 107.635093936 + 13.909720001 + ##### + + + LB + Lebanon + 422 + LBN + LE + AS + Asia + Beirut + 10400.0 + 6848925 + LBP + ar-LB,fr-LB,en,hy + 272103 + 35.103668213 + 34.6920900000001 + 36.62372 + 33.0550260000001 + #### ####|#### + + + LC + Saint Lucia + 662 + LCA + ST + NA + North America + Castries + 616.0 + 181889 + XCD + en-LC + 3576468 + -61.07995730159752 + 14.110317287646 + -60.8732306422271 + 13.7072692224982 + + + + LI + Liechtenstein + 438 + LIE + LS + EU + Europe + Vaduz + 160.0 + 37910 + CHF + de-LI + 3042058 + 9.47167359782014 + 47.2706251386959 + 9.63564281136796 + 47.0484284123471 + #### + + + LK + Sri Lanka + 144 + LKA + CE + AS + Asia + Colombo + 65610.0 + 21670000 + LKR + si,ta,en + 1227603 + 79.6505518289324 + 9.83586297688552 + 81.8790900303934 + 5.91869676126554 + ##### + + + LR + Liberia + 430 + LBR + LI + AF + Africa + Monrovia + 111370.0 + 4818977 + LRD + en-LR + 2275384 + -11.4993114059999 + 8.55198600000006 + -7.36925499999995 + 4.35326143300006 + #### + + + LS + Lesotho + 426 + LSO + LT + AF + Africa + Maseru + 30355.0 + 2108132 + LSL + en-LS,st,zu,xh + 932692 + 27.011229998 + -28.5708 + 29.4557099420001 + -30.6755750029999 + ### + + + LT + Lithuania + 440 + LTU + LH + EU + Europe + Vilnius + 65200.0 + 2789533 + EUR + lt,ru,pl + 597427 + 20.941528 + 56.4504065100001 + 26.8355231 + 53.89679499 + LT-##### + + + LU + Luxembourg + 442 + LUX + LU + EU + Europe + Luxembourg + 2586.0 + 607728 + EUR + lb,de-LU,fr-LU + 2960313 + 5.735698938390786 + 50.182772453796446 + 6.5308980672559525 + 49.447858677765716 + L-#### + + + LV + Latvia + 428 + LVA + LG + EU + Europe + Riga + 64589.0 + 1926542 + EUR + lv,ru,lt + 458258 + 20.9621192713114 + 58.0855687987932 + 28.2414937252949 + 55.6746813658222 + LV-#### + + + LY + Libya + 434 + LBY + LY + AF + Africa + Tripoli + 1759540.0 + 6678567 + LYD + ar-LY,it,en + 2215636 + 9.38702 + 33.168999 + 25.150612 + 19.508045 + + + + MA + Morocco + 504 + MAR + MO + AF + Africa + Rabat + 446550.0 + 36029138 + MAD + ar-MA,ber,fr + 2542007 + -13.1722970399999 + 35.922341095 + -0.996975780999946 + 27.6672694750001 + ##### + + + MC + Monaco + 492 + MCO + MN + EU + Europe + Monaco + 1.95 + 38682 + EUR + fr-MC,en,it + 2993457 + 7.408962249755859 + 43.75196717037228 + 7.439939260482788 + 43.72472839869377 + ##### + + + MD + Moldova + 498 + MDA + MD + EU + Europe + Chișinău + 33843.0 + 3545883 + MDL + ro,ru,gag,tr + 617790 + 26.6164249990001 + 48.492029003 + 30.1635900000001 + 45.4674379630001 + MD-#### + + + ME + Montenegro + 499 + MNE + MJ + EU + Europe + Podgorica + 14026.0 + 622345 + EUR + sr,hu,bs,sq,hr,rom + 3194884 + 18.4335595800001 + 43.558230232 + 20.352926 + 41.868751527 + ##### + + + MF + Saint Martin + 663 + MAF + RN + NA + North America + Marigot + 53.0 + 37264 + EUR + fr + 3578421 + -63.15036103890611 + 18.125295191246206 + -63.01059106320133 + 18.04717219103021 + ##### + + + MG + Madagascar + 450 + MDG + MA + AF + Africa + Antananarivo + 587040.0 + 26262368 + MGA + fr-MG,mg + 1062947 + 43.224876 + -11.945433 + 50.48378 + -25.608952 + ### + + + MH + Marshall Islands + 584 + MHL + RM + OC + Oceania + Majuro + 181.3 + 58413 + USD + mh,en-MH + 2080185 + 165.524918 + 14.62 + 171.931808 + 5.587639 + #####-#### + + + MK + North Macedonia + 807 + MKD + MK + EU + Europe + Skopje + 25333.0 + 2082958 + MKD + mk,sq,tr,rmm,sr + 718075 + 20.4524230000001 + 42.3736460000001 + 23.0340440310001 + 40.8539489400001 + #### + + + ML + Mali + 466 + MLI + ML + AF + Africa + Bamako + 1240000.0 + 19077690 + XOF + fr-ML,bm + 2453866 + -12.240344643 + 25.001084 + 4.26666786900006 + 10.147811 + + + + MM + Myanmar + 104 + MMR + BM + AS + Asia + Nay Pyi Taw + 678500.0 + 53708395 + MMK + my + 1327865 + 92.189278 + 28.543249 + 101.176781 + 9.784583 + ##### + + + MN + Mongolia + 496 + MNG + MG + AS + Asia + Ulaanbaatar + 1565000.0 + 3170208 + MNT + mn,ru + 2029969 + 87.7344790560001 + 52.1483550020001 + 119.931509803 + 41.5818330000001 + ###### + + + MO + Macao + 446 + MAC + MC + AS + Asia + Macao + 254.0 + 631636 + MOP + zh,zh-MO,pt + 1821275 + 113.528563856 + 22.2170590110001 + 113.59234495800001 + 22.109952693 + + + + MP + Northern Mariana Islands + 580 + MNP + CQ + OC + Oceania + Saipan + 477.0 + 56882 + USD + fil,tl,zh,ch-MP,en-MP + 4041468 + 144.88626 + 20.55344 + 146.06528 + 14.11023 + ##### + + + MQ + Martinique + 474 + MTQ + MB + NA + North America + Fort-de-France + 1100.0 + 432900 + EUR + fr-MQ + 3570311 + -61.229041406022 + 14.8787232943029 + -60.8096896756103 + 14.3946961023016 + ##### + + + MR + Mauritania + 478 + MRT + MR + AF + Africa + Nouakchott + 1030700.0 + 4403319 + MRU + ar-MR,fuc,snk,fr,mey,wo + 2378080 + -17.066521 + 27.298073 + -4.827674 + 14.715547 + + + + MS + Montserrat + 500 + MSR + MH + NA + North America + Plymouth + 102.0 + 9341 + XCD + en-MS + 3578097 + -62.24138237036129 + 16.824060205313184 + -62.144100129608205 + 16.674768935441556 + + + + MT + Malta + 470 + MLT + MT + EU + Europe + Valletta + 316.0 + 483530 + EUR + mt,en-MT + 2562770 + 14.1834251000001 + 36.0821530995456 + 14.5764915000002 + 35.8061835000002 + @@@ #### + + + MU + Mauritius + 480 + MUS + MP + AF + Africa + Port Louis + 2040.0 + 1265303 + MUR + en-MU,bho,fr + 934292 + 56.584918976 + -10.336483002 + 63.5028269640001 + -20.5255565639999 + + + + MV + Maldives + 462 + MDV + MV + AS + Asia + Malé + 300.0 + 515696 + MVR + dv,en + 1282028 + 72.693222 + 7.091587495414767 + 73.637276 + -0.692694 + ##### + + + MW + Malawi + 454 + MWI + MI + AF + Africa + Lilongwe + 118480.0 + 17563749 + MWK + ny,yao,tum,swk + 927384 + 32.6725205490001 + -9.36722739199996 + 35.9185731040001 + -17.1295217059999 + ###### + + + MX + Mexico + 484 + MEX + MX + NA + North America + Mexico City + 1972550.0 + 126190788 + MXN + es-MX + 3996063 + -118.453949 + 32.716759 + -86.703392 + 14.532866 + ##### + + + MY + Malaysia + 458 + MYS + MY + AS + Asia + Kuala Lumpur + 329750.0 + 31528585 + MYR + ms-MY,en,zh,ta,te,ml,pa,th + 1733045 + 99.6407165520001 + 7.36333513300002 + 119.269721985 + 0.855000972000028 + ##### + + + MZ + Mozambique + 508 + MOZ + MZ + AF + Africa + Maputo + 801590.0 + 29495962 + MZN + pt-MZ,vmw + 1036973 + 30.2155500000001 + -10.4731756319999 + 40.838104211 + -26.868162 + #### + + + NA + Namibia + 516 + NAM + WA + AF + Africa + Windhoek + 825418.0 + 2448255 + NAD + en-NA,af,de,hz,naq + 3355338 + 11.737502061 + -16.963488173 + 25.2617520000001 + -28.9706389999999 + + + + NC + New Caledonia + 540 + NCL + NC + OC + Oceania + Noumea + 19060.0 + 284060 + XPF + fr-NC + 2139685 + 163.564667 + -19.549778 + 168.129135 + -22.698 + ##### + + + NE + Niger + 562 + NER + NG + AF + Africa + Niamey + 1267000.0 + 22442948 + XOF + fr-NE,ha,kr,dje + 2440476 + 0.162193643000023 + 23.5149999920001 + 15.9990340000001 + 11.6937560000001 + #### + + + NF + Norfolk Island + 574 + NFK + NF + OC + Oceania + Kingston + 34.6 + 1828 + AUD + en-NF + 2155115 + 167.91543230151365 + -28.995170686948427 + 167.99773740209957 + -29.063076742954735 + #### + + + NG + Nigeria + 566 + NGA + NI + AF + Africa + Abuja + 923768.0 + 195874740 + NGN + en-NG,ha,yo,ig,ff + 2328926 + 2.663560999000026 + 13.885645000000068 + 14.677982000000043 + 4.27058531900002 + ###### + + + NI + Nicaragua + 558 + NIC + NU + NA + North America + Managua + 129494.0 + 6465513 + NIO + es-NI,en + 3617476 + -87.690308 + 15.025909 + -82.738289 + 10.707543 + ###-###-# + + + NL + Netherlands + 528 + NLD + NL + EU + Europe + Amsterdam + 41526.0 + 17231017 + EUR + nl-NL,fy-NL + 2750405 + 3.35837827202 + 53.5157125645109 + 7.22749859212922 + 50.7503674993741 + #### @@ + + + NO + Norway + 578 + NOR + NO + EU + Europe + Oslo + 324220.0 + 5314336 + NOK + no,nb,nn,se,fi + 3144096 + 4.64182374183584 + 71.1854764998959 + 31.063740342248376 + 57.97987783489344 + #### + + + NP + Nepal + 524 + NPL + NP + AS + Asia + Kathmandu + 140800.0 + 28087871 + NPR + ne,en + 1282988 + 80.058450824 + 30.447389748 + 88.2015257450001 + 26.3479660710001 + ##### + + + NR + Nauru + 520 + NRU + NR + OC + Oceania + Yaren District + 21.0 + 12704 + AUD + na,en-NR + 2110425 + 166.90968999999996 + -0.502657000000004 + 166.95899600000007 + -0.5541467234752249 + + + + NU + Niue + 570 + NIU + NE + OC + Oceania + Alofi + 260.0 + 2166 + NZD + niu,en-NU + 4036232 + -169.951004 + -18.951069 + -169.775177 + -19.152193 + + + + NZ + New Zealand + 554 + NZL + NZ + OC + Oceania + Wellington + 268680.0 + 4885500 + NZD + en-NZ,mi + 2186224 + 166.7155 + -34.389668 + -180.0 + -47.286026 + #### + + + OM + Oman + 512 + OMN + MU + AS + Asia + Muscat + 212460.0 + 4829483 + OMR + ar-OM,en,bal,ur + 286963 + 52.0000000000001 + 26.3863334660001 + 59.8379173280001 + 16.6500835430001 + ### + + + PA + Panama + 591 + PAN + PM + NA + North America + Panama City + 78200.0 + 4176873 + PAB + es-PA,en + 3703430 + -83.0523988577088 + 9.6474132494631 + -77.1563637579897 + 7.20236920646422 + + + + PE + Peru + 604 + PER + PE + SA + South America + Lima + 1285220.0 + 31989256 + PEN + es-PE,qu,ay + 3932488 + -81.3281953622301 + -0.0386059686681167 + -68.6522791042853 + -18.3509277356587 + ##### + + + PF + French Polynesia + 258 + PYF + FP + OC + Oceania + Papeete + 4167.0 + 277679 + XPF + fr-PF,ty + 4030656 + -152.877167 + -7.903573 + -134.929825 + -27.653572 + ##### + + + PG + Papua New Guinea + 598 + PNG + PP + OC + Oceania + Port Moresby + 462840.0 + 8606316 + PGK + en-PG,ho,meu,tpi + 2088628 + 140.841969 + -1.31544446799995 + 155.968780519 + -11.657972335 + ### + + + PH + Philippines + 608 + PHL + RP + AS + Asia + Manila + 300000.0 + 106651922 + PHP + tl,en-PH,fil,ceb,tgl,ilo,hil,war,pam,bik,bcl,pag,mrw,tsg,mdh,cbk,krj,sgd,msb,akl,ibg,yka,mta,abx + 1694008 + 116.9288644959 + 21.1218854788318 + 126.60497402182328 + 4.64209796365014 + #### + + + PK + Pakistan + 586 + PAK + PK + AS + Asia + Islamabad + 803940.0 + 212215030 + PKR + ur-PK,en-PK,pa,sd,ps,brh + 1168579 + 60.8729720000001 + 37.0841070010001 + 77.0132974640001 + 23.769527435 + ##### + + + PL + Poland + 616 + POL + PL + EU + Europe + Warsaw + 312685.0 + 37978548 + PLN + pl + 798544 + 14.1228850233809 + 54.8357886595169 + 24.1457828491313 + 49.0020465193443 + ##-### + + + PM + Saint Pierre and Miquelon + 666 + SPM + SB + NA + North America + Saint-Pierre + 242.0 + 7012 + EUR + fr-PM + 3424932 + -56.40709223087083 + 47.14376802942701 + -56.1253298443454 + 46.78264970849848 + ##### + + + PN + Pitcairn Islands + 612 + PCN + PC + OC + Oceania + Adamstown + 47.0 + 46 + NZD + en-PN + 4030699 + -128.35699011119425 + -24.3299386198549 + -124.77285 + -24.672565 + + + + PR + Puerto Rico + 630 + PRI + RQ + NA + North America + San Juan + 9104.0 + 3195153 + USD + en-PR,es-PR + 4566966 + -67.9461344974432 + 18.5159687270238 + -65.2442099429843 + 17.9269004394039 + #####-#### + + + PS + Palestine + 275 + PSE + WE + AS + Asia + + 5970.0 + 4569087 + ILS + ar-PS + 6254930 + 34.2186994300001 + 32.5520881030001 + 35.5740520000001 + 31.2200520000001 + + + + PT + Portugal + 620 + PRT + PO + EU + Europe + Lisbon + 92391.0 + 10281762 + EUR + pt-PT,mwl + 2264397 + -9.50052660716588 + 42.154311127408 + -6.18915930748288 + 36.96125 + ####-### + + + PW + Palau + 585 + PLW + PS + OC + Oceania + Ngerulmud + 458.0 + 17907 + USD + pau,sov,en-PW,tox,ja,fil,zh + 1559582 + 131.11788 + 8.46966 + 134.72307 + 2.8036 + 96940 + + + PY + Paraguay + 600 + PRY + PA + SA + South America + Asunción + 406750.0 + 6956071 + PYG + es-PY,gn + 3437598 + -62.6446174378624 + -19.2896000004762 + -54.2589239104835 + -27.5918335646318 + #### + + + QA + Qatar + 634 + QAT + QA + AS + Asia + Doha + 11437.0 + 2781677 + QAR + ar-QA,es + 289688 + 50.750030995 + 26.1578818880001 + 51.6315537500001 + 24.4711111230001 + + + + RE + Réunion + 638 + REU + RE + AF + Africa + Saint-Denis + 2517.0 + 776948 + EUR + fr-RE + 935317 + 55.2165259976951 + -20.8718271541163 + 55.8366292267104 + -21.3896307613732 + ##### + + + RO + Romania + 642 + ROU + RO + EU + Europe + Bucharest + 237500.0 + 19473936 + RON + ro,hu,rom + 798549 + 20.2619949052262 + 48.2653912058468 + 29.7152986907701 + 43.6190166499833 + ###### + + + RS + Serbia + 688 + SRB + RI + EU + Europe + Belgrade + 88361.0 + 6982084 + RSD + sr,hu,bs,rom + 6290252 + 18.838044043 + 46.189446 + 23.0063870060001 + 42.2315030010001 + ###### + + + RU + Russia + 643 + RUS + RS + EU + Europe + Moscow + 1.71E7 + 144478050 + RUB + ru,tt,xal,cau,ady,kv,ce,tyv,cv,udm,tut,mns,bua,myv,mdf,chm,ba,inh,tut,kbd,krc,av,sah,nog + 2017370 + 19.25 + 81.8616409300001 + -169.05 + 41.1853530000001 + ###### + + + RW + Rwanda + 646 + RWA + RW + AF + Africa + Kigali + 26338.0 + 12301939 + RWF + rw,en-RW,fr-RW,sw + 49518 + 28.8617308206209 + -1.04716670707785 + 30.8997466415943 + -2.84023010213747 + + + + SA + Saudi Arabia + 682 + SAU + SA + AS + Asia + Riyadh + 1960582.0 + 33699947 + SAR + ar-SA + 102358 + 34.495693 + 32.1542840000001 + 55.6667 + 16.379528001 + ##### + + + SB + Solomon Islands + 090 + SLB + BP + OC + Oceania + Honiara + 28450.0 + 652858 + SBD + en-SB,tpi + 2103350 + 155.51227512 + -6.58897397999996 + 166.99122396 + -11.88141903 + + + + SC + Seychelles + 690 + SYC + SE + AF + Africa + Victoria + 455.0 + 96762 + SCR + en-SC,fr-SC + 241170 + 46.208213357 + -4.28819084199995 + 56.29445861 + -9.75436787999996 + + + + SD + Sudan + 729 + SDN + SU + AF + Africa + Khartoum + 1861484.0 + 41801533 + SDG + ar-SD,en,fia + 366755 + 21.8146345210001 + 23.1464092140001 + 38.5822502880001 + 9.48888700000003 + ##### + + + SE + Sweden + 752 + SWE + SW + EU + Europe + Stockholm + 449964.0 + 10183175 + SEK + sv-SE,se,sma,fi-SE + 2661886 + 11.109499387126 + 69.0599672666879 + 24.155245238099 + 55.3374438220002 + ### ## + + + SG + Singapore + 702 + SGP + SN + AS + Asia + Singapore + 692.7 + 5638676 + SGD + cmn,en-SG,ms-SG,ta-SG,zh-SG + 1880251 + 103.605700705134 + 1.47077483208476 + 104.043617447514 + 1.21065456224784 + ###### + + + SH + Saint Helena + 654 + SHN + SH + AF + Africa + Jamestown + 410.0 + 7460 + SHP + en-SH + 3370751 + -14.42123 + -7.887815 + -5.638753 + -16.019543 + STHL 1ZZ + + + SI + Slovenia + 705 + SVN + SI + EU + Europe + Ljubljana + 20273.0 + 2067372 + EUR + sl,sh + 3190538 + 13.3753342064709 + 46.8766275518195 + 16.6106311807 + 45.421812998164 + #### + + + SJ + Svalbard and Jan Mayen + 744 + SJM + SV + EU + Europe + Longyearbyen + 62049.0 + 2550 + NOK + no,ru + 607072 + 17.699389 + 80.762085 + 33.287334 + 79.220306 + #### + + + SK + Slovakia + 703 + SVK + LO + EU + Europe + Bratislava + 48845.0 + 5447011 + EUR + sk,hu + 3057568 + 16.8334234020001 + 49.6137360000001 + 22.5657383340001 + 47.7313590000001 + ### ## + + + SL + Sierra Leone + 694 + SLE + SL + AF + Africa + Freetown + 71740.0 + 7650154 + SLL + en-SL,men,tem + 2403846 + -13.302128077 + 9.99997300000007 + -10.2716829999999 + 6.92343700100002 + + + + SM + San Marino + 674 + SMR + SM + EU + Europe + San Marino + 61.2 + 33785 + EUR + it-SM + 3168068 + 12.403605260165023 + 43.9920929668161 + 12.51584904544211 + 43.8937002210188 + 4789# + + + SN + Senegal + 686 + SEN + SG + AF + Africa + Dakar + 196190.0 + 15854360 + XOF + fr-SN,wo,fuc,mnk + 2245662 + -17.529520035 + 16.6929572170001 + -11.345768371 + 12.307289079 + ##### + + + SO + Somalia + 706 + SOM + SO + AF + Africa + Mogadishu + 637657.0 + 15008154 + SOS + so-SO,ar-SO,it,en-SO + 51537 + 40.9943730000001 + 11.9887353730001 + 51.4150313960001 + -1.66203236399997 + @@ ##### + + + SR + Suriname + 740 + SUR + NS + SA + South America + Paramaribo + 163270.0 + 575991 + SRD + nl-SR,en,srn,hns,jv + 3382998 + -58.070505999 + 6.01550458300005 + -53.978763 + 1.83730600000007 + + + + SS + South Sudan + 728 + SSD + OD + AF + Africa + Juba + 644329.0 + 8260490 + SSP + en + 7909807 + 23.4408490000001 + 12.236389 + 35.9489970000001 + 3.48898000000003 + + + + ST + São Tomé and Príncipe + 678 + STP + TP + AF + Africa + São Tomé + 1001.0 + 197700 + STN + pt-ST + 2410758 + 6.47017 + 1.701323 + 7.466374 + 0.024766 + + + + SV + El Salvador + 222 + SLV + ES + NA + North America + San Salvador + 21040.0 + 6420744 + USD + es-SV + 3585968 + -90.134654476 + 14.450557001 + -87.692162 + 13.153004391 + CP #### + + + SX + Sint Maarten + 534 + SXM + NN + NA + North America + Philipsburg + 21.0 + 40654 + ANG + nl,en + 7609695 + -63.13916381600001 + 18.0641148010001 + -63.01365933767215 + 18.00509989712575 + + + + SY + Syria + 760 + SYR + SY + AS + Asia + Damascus + 185180.0 + 16906283 + SYP + ar-SY,ku,hy,arc,fr,en + 163843 + 35.587211 + 37.3205689060001 + 42.376309 + 32.311136 + + + + SZ + Eswatini + 748 + SWZ + WZ + AF + Africa + Mbabane + 17363.0 + 1136191 + SZL + en-SZ,ss-SZ + 934841 + 30.7906400000001 + -25.7179199999999 + 32.1349066610001 + -27.317402 + @### + + + TC + Turks and Caicos Islands + 796 + TCA + TK + NA + North America + Cockburn Town + 430.0 + 37665 + USD + en-TC + 3576916 + -72.483871 + 21.961878 + -71.123642 + 21.422626 + TKCA 1ZZ + + + TD + Chad + 148 + TCD + CD + AF + Africa + N'Djamena + 1284000.0 + 15477751 + XAF + fr-TD,ar-TD,sre + 2434508 + 13.47 + 23.4523611160001 + 24.0000000000001 + 7.44297500000005 + + + + TF + French Southern Territories + 260 + ATF + FS + AN + Antarctica + Port-aux-Français + 7829.0 + 140 + EUR + fr + 1546748 + 50.170258 + -37.790722 + 77.598808 + -49.735184 + + + + TG + Togo + 768 + TGO + TO + AF + Africa + Lomé + 56785.0 + 7889094 + XOF + fr-TG,ee,hna,kbp,dag,ha + 2363686 + -0.144041999999956 + 11.1394984250001 + 1.80890722900006 + 6.11225958700004 + + + + TH + Thailand + 764 + THA + TH + AS + Asia + Bangkok + 514000.0 + 69428524 + THB + th,en + 1605651 + 97.345642 + 20.463194 + 105.639389 + 5.61 + ##### + + + TJ + Tajikistan + 762 + TJK + TI + AS + Asia + Dushanbe + 143100.0 + 9100837 + TJS + tg,ru + 1220409 + 67.3420120000001 + 41.0443670000001 + 75.1539560000001 + 36.672037001 + ###### + + + TK + Tokelau + 772 + TKL + TL + OC + Oceania + + 10.0 + 1466 + NZD + tkl,en-TK + 4031074 + -172.50033569335938 + -8.553613662719727 + -171.21142578125 + -9.381111145019531 + + + + TL + Timor-Leste + 626 + TLS + TT + OC + Oceania + Dili + 15007.0 + 1267972 + USD + tet,pt-TL,id,en + 1966436 + 124.04464721679688 + -8.12687015533447 + 127.34211730957031 + -9.504650115966797 + + + + TM + Turkmenistan + 795 + TKM + TX + AS + Asia + Ashgabat + 488100.0 + 5850908 + TMT + tk,ru,uz + 1218197 + 52.4455780650001 + 42.7982617260001 + 66.7073530000001 + 35.1290930000001 + ###### + + + TN + Tunisia + 788 + TUN + TS + AF + Africa + Tunis + 163610.0 + 11565204 + TND + ar-TN,fr + 2464461 + 7.52252789300007 + 37.5419886350001 + 11.608143339 + 30.2415834110001 + #### + + + TO + Tonga + 776 + TON + TN + OC + Oceania + Nuku'alofa + 748.0 + 103197 + TOP + to,en-TO + 4032283 + -175.67962556356 + -15.566146670329 + -173.902137947337 + -21.4564838739226 + + + + TR + Turkey + 792 + TUR + TU + AS + Asia + Ankara + 780580.0 + 82319724 + TRY + tr-TR,ku,diq,az,av + 298795 + 25.6665057269225 + 42.104895001 + 44.81812800000006 + 35.8121761290001 + ##### + + + TT + Trinidad and Tobago + 780 + TTO + TD + NA + North America + Port of Spain + 5128.0 + 1389858 + TTD + en-TT,hns,fr,es,zh + 3573591 + -61.933723449 + 11.348472596 + -60.519332886 + 10.0411386500001 + + + + TV + Tuvalu + 798 + TUV + TV + OC + Oceania + Funafuti + 26.0 + 11508 + AUD + tvl,en,sm,gil + 2110297 + 176.059056543963 + -5.64246006144929 + 179.871049968689 + -10.791580457901 + + + + TW + Taiwan + 158 + TWN + TW + AS + Asia + Taipei + 35980.0 + 23451837 + TWD + zh-TW,zh,nan,hak + 1668284 + 119.534691 + 25.3002899036181 + 122.006739823315 + 21.896606934717 + ##### + + + TZ + Tanzania + 834 + TZA + TZ + AF + Africa + Dodoma + 945087.0 + 56318348 + TZS + sw-TZ,en,ar + 149590 + 29.34 + -0.984396999999944 + 40.4448279960001 + -11.761254 + + + + UA + Ukraine + 804 + UKR + UP + EU + Europe + Kyiv + 603700.0 + 44622516 + UAH + uk,ru-UA,rom,pl,hu + 690791 + 22.137078 + 52.3793713250001 + 40.22048033 + 44.3820571900001 + ##### + + + UG + Uganda + 800 + UGA + UG + AF + Africa + Kampala + 236040.0 + 42723139 + UGX + en-UG,lg,sw,ar + 226074 + 29.573465338129 + 4.23136926690327 + 35.0010535324228 + -1.48153052848838 + + + + UM + U.S. Outlying Islands + 581 + UMI + + OC + Oceania + + 0.0 + 0 + USD + en-UM + 5854968 + -177.39629361298717 + 28.218499990178167 + 166.657540716752 + -0.38256883746907566 + + + + US + United States + 840 + USA + US + NA + North America + Washington + 9629091.0 + 327167434 + USD + en-US,es-US,haw,fr + 6252001 + -124.733692 + 49.384358 + -66.949607 + 24.544093 + #####-#### + + + UY + Uruguay + 858 + URY + UY + SA + South America + Montevideo + 176220.0 + 3449299 + UYU + es-UY + 3439705 + -58.4393489790361 + -30.0855024328825 + -53.1810509360802 + -34.9740543027064 + ##### + + + UZ + Uzbekistan + 860 + UZB + UZ + AS + Asia + Tashkent + 447400.0 + 32955400 + UZS + uz,ru,tg + 1512440 + 55.9982180000001 + 45.5900750010001 + 73.1489460000001 + 37.172269828 + ###### + + + VA + Vatican City + 336 + VAT + VT + EU + Europe + Vatican City + 0.44 + 921 + EUR + la,it,fr + 3164670 + 12.44570678169205 + 41.90743830885576 + 12.45837546629481 + 41.90027960306854 + ##### + + + VC + St Vincent and Grenadines + 670 + VCT + VC + NA + North America + Kingstown + 389.0 + 110211 + XCD + en-VC,fr + 3577815 + -61.4608524069999 + 13.3831850654817 + -61.1149220521562 + 12.5839734740001 + + + + VE + Venezuela + 862 + VEN + VE + SA + South America + Caracas + 912050.0 + 28870195 + VES + es-VE + 3625428 + -73.354073 + 12.201903 + -59.80378 + 0.626311 + #### + + + VG + British Virgin Islands + 092 + VGB + VI + NA + North America + Road Town + 153.0 + 29802 + USD + en-VG + 3577718 + -64.71312752730364 + 18.757221 + -64.268768 + 18.383710898211305 + + + + VI + U.S. Virgin Islands + 850 + VIR + VQ + NA + North America + Charlotte Amalie + 352.0 + 106977 + USD + en-VI + 4796775 + -65.101333 + 18.415382 + -64.565193 + 17.673931 + #####-#### + + + VN + Vietnam + 704 + VNM + VM + AS + Asia + Hanoi + 329560.0 + 95540395 + VND + vi,en,fr,zh,km + 1562822 + 102.148224 + 23.388834 + 109.464638 + 8.559611 + ###### + + + VU + Vanuatu + 548 + VUT + NH + OC + Oceania + Port Vila + 12200.0 + 292680 + VUV + bi,en-VU,fr-VU + 2134431 + 166.541563758726 + -13.0717069251352 + 169.904111113607 + -20.2524399918312 + + + + WF + Wallis and Futuna + 876 + WLF + WF + OC + Oceania + Mata-Utu + 274.0 + 16025 + XPF + wls,fud,fr-WF + 4034749 + -178.181766889147 + -13.2169133113924 + -176.161967235958 + -14.3124693963595 + ##### + + + WS + Samoa + 882 + WSM + WS + OC + Oceania + Apia + 2944.0 + 196130 + WST + sm,en-WS + 4034894 + -172.8035771799316 + -13.440157771394277 + -171.42329410058596 + -14.049015687969286 + + + + XK + Kosovo + 0 + XKX + KV + EU + Europe + Pristina + 10908.0 + 1845300 + EUR + sq,sr + 831053 + 20.014284 + 43.2676851730001 + 21.7898670000001 + 41.857641001 + + + + YE + Yemen + 887 + YEM + YM + AS + Asia + Sanaa + 527970.0 + 28498687 + YER + ar-YE + 69543 + 42.5325394314234 + 18.9999989031009 + 54.5305388163283 + 12.1110910264462 + + + + YT + Mayotte + 175 + MYT + MF + AF + Africa + Mamoudzou + 374.0 + 279471 + EUR + fr-YT + 1024031 + 45.0398136630555 + -12.6507257773157 + 45.2999850886235 + -13.0000903911179 + ##### + + + ZA + South Africa + 710 + ZAF + SF + AF + Africa + Pretoria + 1219912.0 + 57779622 + ZAR + zu,xh,af,nso,en-ZA,tn,st,ts,ss,ve,nr + 953987 + 16.45189 + -22.1250300579999 + 32.944984945 + -34.8341700029999 + #### + + + ZM + Zambia + 894 + ZMB + ZA + AF + Africa + Lusaka + 752614.0 + 17351822 + ZMW + en-ZM,bem,loz,lun,lue,ny,toi + 895949 + 21.999350925 + -8.20328399999994 + 33.7090304810001 + -18.077418 + ##### + + + ZW + Zimbabwe + 716 + ZWE + ZI + AF + Africa + Harare + 390580.0 + 14439018 + ZWL + en-ZW,sn,nr,nd + 878675 + 25.2373680000001 + -15.609318999 + 33.0682360000001 + -22.421998999 + + diff --git a/requests/nominatim.openstreetmap.yml b/requests/nominatim.openstreetmap.yml new file mode 100644 index 0000000..931a653 --- /dev/null +++ b/requests/nominatim.openstreetmap.yml @@ -0,0 +1,236 @@ +--- +AD: 0.0302777777778 +AE: 1.98777777778 +AF: 0.0408333333333 +AG: 0.00222222222222 +AI: 0.249166666667 +AL: 2.22527777778 +AM: 1.59555555556 +AO: 0.583055555556 +AQ: 0.0025 +AR: 10.4358333333 +AS: 0.000555555555556 +AT: 15.6136111111 +AU: 18.2058333333 +AW: 0.0358333333333 +AX: 0.0152777777778 +AZ: 1.45888888889 +BA: 0.412222222222 +BB: 0.0313888888889 +BD: 2.07638888889 +BE: 5.54 +BF: 0.0527777777778 +BG: 2.63083333333 +BH: 0.121944444444 +BI: 0.0691666666667 +BJ: 0.257777777778 +BL: 0.00666666666667 +BM: 0.0594444444444 +BN: 0.106388888889 +BO: 2.04444444444 +BQ: 0.00416666666667 +BR: 64.7872222222 +BS: 0.0113888888889 +BT: 0.0211111111111 +BW: 0.0675 +BY: 3.45055555556 +BZ: 0.015 +CA: 18.0144444444 +CD: 0.364722222222 +CF: 0.005 +CG: 0.0661111111111 +CH: 11.8022222222 +CI: 0.66 +CK: 0.000555555555556 +CL: 5.82055555556 +CM: 1.11805555556 +CN: 24.0813888889 +CO: 29.0861111111 +CR: 0.450555555556 +CU: 0.0975 +CV: 0.0138888888889 +CW: 0.0155555555556 +CY: 0.251944444444 +CZ: 6.90222222222 +DE: 229.34 +DJ: 0.0125 +DK: 3.63361111111 +DM: 0.00194444444444 +DO: 3.98111111111 +DZ: 0.991666666667 +EC: 3.18333333333 +EE: 3.37527777778 +EG: 4.04583333333 +ES: 23.5105555556 +ET: 0.326666666667 +FI: 4.62611111111 +FJ: 0.0161111111111 +FK: 0.000833333333333 +FM: 0.000833333333333 +FO: 0.613333333333 +FR: 49.7969444444 +GA: 0.0636111111111 +GB: 30.8966666667 +GD: 0.00138888888889 +GE: 0.204166666667 +GF: 0.0297222222222 +GG: 0.00527777777778 +GH: 1.145 +GI: 0.00888888888889 +GL: 0.0880555555556 +GM: 0.0172222222222 +GN: 0.0661111111111 +GP: 0.0627777777778 +GQ: 0.000833333333333 +GR: 21.7488888889 +GT: 15.895 +GU: 0.0144444444444 +GW: 0.000833333333333 +GY: 0.0122222222222 +HK: 1.82722222222 +HN: 0.228333333333 +HR: 8.52138888889 +HT: 0.00666666666667 +HU: 4.32694444444 +ID: 38.6758333333 +IE: 30.0491666667 +IL: 6.955 +IM: 0.142777777778 +IN: 45.3866666667 +IO: 0.000555555555556 +IQ: 0.7525 +IR: 4.71722222222 +IS: 0.1725 +IT: 31.4088888889 +JE: 0.0513888888889 +JM: 0.130833333333 +JO: 0.599166666667 +JP: 11.1275 +KE: 4.11861111111 +KG: 0.218055555556 +KH: 0.379722222222 +KI: 0.000277777777778 +KM: 0.00388888888889 +KN: 0.000555555555556 +KR: 3.85888888889 +KW: 0.819166666667 +KY: 0.00416666666667 +KZ: 2.39666666667 +LA: 0.366944444444 +LB: 0.231944444444 +LC: 0.01 +LI: 0.0236111111111 +LK: 1.51722222222 +LR: 0.0355555555556 +LS: 0.00305555555556 +LT: 6.14444444444 +LU: 2.09 +LV: 2.19222222222 +LY: 0.0883333333333 +MA: 5.09111111111 +MC: 0.0163888888889 +MD: 3.43583333333 +ME: 0.145833333333 +MF: 0.00361111111111 +MG: 0.525277777778 +MH: 0.00305555555556 +MK: 0.112222222222 +ML: 0.0725 +MM: 0.0772222222222 +MN: 1.35861111111 +MO: 0.0475 +MP: 0.00194444444444 +MQ: 0.0322222222222 +MR: 0.0458333333333 +MS: 0.0025 +MT: 0.314166666667 +MU: 0.234166666667 +MV: 0.0244444444444 +MW: 0.0447222222222 +MX: 30.385 +MY: 6.13722222222 +MZ: 0.246666666667 +NA: 0.486666666667 +NC: 0.0458333333333 +NE: 0.173611111111 +NF: 0.000277777777778 +NG: 6.42138888889 +NI: 0.0344444444444 +NL: 30.8016666667 +NO: 4.5425 +NP: 1.77666666667 +NZ: 2.23888888889 +OM: 0.176388888889 +PA: 0.261111111111 +PE: 1.65388888889 +PF: 0.285555555556 +PG: 0.055 +PH: 4.54111111111 +PK: 1.99972222222 +PL: 53.8841666667 +PM: 0.000833333333333 +PR: 0.4075 +PS: 1.21805555556 +PT: 2.37777777778 +PW: 0.000277777777778 +PY: 4.65277777778 +QA: 0.277777777778 +RE: 0.497222222222 +RO: 4.84888888889 +RS: 1.51027777778 +RU: 79.0533333333 +RW: 0.0455555555556 +SA: 3.76305555556 +SB: 0.194444444444 +SC: 1.6425 +SD: 0.899722222222 +SE: 6.68861111111 +SG: 13.1025 +SI: 0.849166666667 +SK: 2.11944444444 +SL: 0.163333333333 +SM: 0.0205555555556 +SN: 0.185277777778 +SO: 0.146944444444 +SR: 0.0136111111111 +SS: 0.00777777777778 +ST: 0.00138888888889 +SV: 0.171666666667 +SX: 0.00444444444444 +SY: 0.728888888889 +SZ: 0.0116666666667 +TC: 0.0025 +TD: 0.00388888888889 +TG: 0.0719444444444 +TH: 5.42694444444 +TJ: 0.534444444444 +TL: 0.0172222222222 +TM: 0.0577777777778 +TN: 1.01861111111 +TO: 0.000277777777778 +TR: 14.9716666667 +TT: 1.00166666667 +TV: 0.00583333333333 +TW: 5.9775 +TZ: 0.296944444444 +UA: 37.3986111111 +UG: 0.272222222222 +UM: 0.000833333333333 +US: 324.626944444 +UY: 0.799166666667 +UZ: 7.335 +VA: 0.00555555555556 +VC: 0.000833333333333 +VE: 4.03694444444 +VG: 0.00111111111111 +VI: 0.00944444444444 +VN: 15.1244444444 +VU: 0.00277777777778 +WF: 0.0183333333333 +WS: 0.00111111111111 +XK: 0.00166666666667 +YE: 0.0991666666667 +YT: 0.00527777777778 +ZA: 8.20611111111 +ZM: 0.110277777778 +ZW: 0.420277777778 diff --git a/src/hosts.js b/src/hosts.js new file mode 100644 index 0000000..24a2e5b --- /dev/null +++ b/src/hosts.js @@ -0,0 +1,223 @@ +var ALBI_IPV4 = "51.159.53.238"; +var ALBI_IPV6 = "2001:0bc8:1200:0004:dac4:97ff:fe8a:9cfc"; + +var ANGOR_IPV4 = "196.10.54.165"; +var ANGOR_IPV6 = "2001:43f8:1f4:b00:b283:feff:fed8:dd45"; + +var ASCALON_IPV4 = "184.107.48.228"; + +var BALERION_IPV4 = "138.44.68.134"; + +var BOWSER_IPV4 = "138.44.68.106"; + +var CULEBRE_IPV4 = "184.104.226.105"; +var CULEBRE_IPV6 = "2001:470:1:b3b::9"; +var CULEBRE_INTERNAL = "10.0.64.9"; +var CULEBRE_OOB = "10.0.65.9"; + +var DRIBBLE_IPV4 = "184.104.179.132"; +var DRIBBLE_IPV6 = "2001:470:1:fa1::4"; +var DRIBBLE_INTERNAL = "10.0.48.4"; +var DRIBBLE_OOB = "10.0.49.4"; + +var DULCY_IPV4 = "184.104.179.137"; +var DULCY_IPV6 = "2001:470:1:fa1::9"; +var DULCY_INTERNAL = "10.0.48.9"; +var DULCY_OOB = "10.0.49.9"; + +var EDDIE_INTERNAL = "10.0.0.10"; +var EDDIE_OOB = "10.0.1.10"; + +var FAFFY_IPV4 = "184.104.179.131"; +var FAFFY_IPV6 = "2001:470:1:fa1::3"; +var FAFFY_INTERNAL = "10.0.48.3"; +var FAFFY_OOB = "10.0.49.3"; + +var FAFNIR_IPV4 = "184.104.226.98"; +var FAFNIR_IPV6 = "2001:470:1:b3b::2"; +var FAFNIR_INTERNAL = "10.0.64.2"; +var FAFNIR_OOB = "10.0.65.2"; + +var FUME_IPV4 = "184.104.226.112"; +var FUME_IPV6 = "2001:470:1:b3b::10"; +var FUME_INTERNAL = "10.0.64.16"; +var FUME_OOB = "10.0.65.16"; + +var GRISU_IPV4 = "184.104.226.113"; +var GRISU_IPV6 = "2001:470:1:b3b::11"; +var GRISU_INTERNAL = "10.0.64.17"; +var GRISU_OOB = "10.0.65.17"; + +var HORNTAIL_IPV4 = "184.104.226.106"; +var HORNTAIL_IPV6 = "2001:470:1:b3b::a"; +var HORNTAIL_INTERNAL = "10.0.64.10"; +var HORNTAIL_OOB = "10.0.65.10"; + +var IDRIS_IPV4 = "184.104.226.102"; +var IDRIS_IPV6 = "2001:470:1:b3b::6"; +var IDRIS_INTERNAL = "10.0.64.6"; +var IDRIS_OOB = "10.0.65.6"; + +var IRONBELLY_IPV4 = "184.104.179.138"; +var IRONBELLY_IPV6 = "2001:470:1:fa1::a"; +var IRONBELLY_INTERNAL = "10.0.48.10"; +var IRONBELLY_OOB = "10.0.49.10"; + +var JAKELONG_IPV4 = "184.104.226.108"; +var JAKELONG_IPV6 = "2001:470:1:b3b::c"; +var JAKELONG_INTERNAL = "10.0.64.12"; +var JAKELONG_OOB = "10.0.65.12"; + +var KARM_INTERNAL = "10.0.48.50"; +var KARM_OOB = "10.0.49.50"; + +var KESSIE_IPV4 = "178.250.74.36"; +var KESSIE_IPV6 = "2a02:1658:4:0:dad3:85ff:fe5d:875e"; +var KESSIE_OOB = "178.250.74.37"; + +var KONQI_IPV4 = "184.104.226.103"; +var KONQI_IPV6 = "2001:470:1:b3b::7"; +var KONQI_INTERNAL = "10.0.64.7"; +var KONQI_OOB = "10.0.65.7"; + +var KVM1_INTERNAL = "10.0.0.21"; + +var LADON_IPV4 = "83.212.2.116"; +var LADON_IPV6 = "2001:648:2ffe:4::116"; + +var LONGMA_IPV4 = "184.104.226.109"; +var LONGMA_IPV6 = "2001:470:1:b3b::d"; +var LONGMA_INTERNAL = "10.0.64.13"; +var LONGMA_OOB = "10.0.65.13"; + +var MERAXES_IPV4 = "51.15.185.90"; +var MERAXES_IPV6 = "2001:bc8:2d57:100:aa1e:84ff:fe72:e660"; + +var MUIRDRIS_IPV4 = "184.104.226.111"; +var MUIRDRIS_IPV6 = "2001:470:1:b3b::f"; +var MUIRDRIS_INTERNAL = "10.0.64.15"; +var MUIRDRIS_OOB = "10.0.65.15"; + +var NAGA_IPV4 = "184.104.226.104"; +var NAGA_IPV6 = "2001:470:1:b3b::8"; +var NAGA_INTERNAL = "10.0.64.8"; +var NAGA_OOB = "10.0.65.8"; + +var NEAK_IPV4 = "89.234.177.142"; + +var NECROSAN_IPV4 = "45.85.134.91"; +var NECROSAN_IPV6 = "2a05:46c0:100:1004:ffff:ffff:ffff:ffff"; + +var NIDHOGG_IPV4 = "194.71.11.111"; +var NIDHOGG_IPV6 = "2001:6b0:19:2::111"; +var NIDHOGG_OOB = "130.239.18.115"; + +var NORBERT_IPV4 = "184.104.179.145"; +var NORBERT_IPV6 = "2001:470:1:fa1::11"; +var NORBERT_INTERNAL = "10.0.48.17"; +var NORBERT_OOB = "10.0.49.17"; + +var ODIN_IPV4 = "184.104.179.143"; +var ODIN_IPV6 = "2001:470:1:fa1::f"; +var ODIN_INTERNAL = "10.0.48.15"; +var ODIN_OOB = "10.0.49.15"; + +var OOB1AMS_INTERNAL = "10.0.48.102"; + +var OOB1DUB_INTERNAL = "10.0.64.102"; + +var PALULUKON_IPV4 = "3.144.0.72"; + +var PIASA_IPV4 = "140.211.167.101"; +var PIASA_IPV6 = "2605:bc80:3010:700::8cd3:a765"; +var PIASA_OOB = "10.0.0.198"; + +var PDU1AMS_INTERNAL = "10.0.48.100"; + +var PDU2AMS_INTERNAL = "10.0.48.101"; + +var PDU1DUB_INTERNAL = "10.0.64.100"; + +var PDU2DUB_INTERNAL = "10.0.64.101"; + +var RHAEGAL_IPV4 = "161.53.248.77"; + +var RIDGEBACK_IPV4 = "31.169.50.10"; +var RIDGEBACK_OOB = "31.169.50.14"; + +var RIDLEY_IPV4 = "193.60.236.19"; +var RIDLEY_INTERNAL = "10.0.0.3"; +var RIDLEY_OOB = "10.0.1.3"; + +var SCORCH_IPV4 = "176.31.235.79"; +var SCORCH_IPV6 = "2001:41d0:2:fc4f::1"; + +var SHENRON_IPV4 = "212.110.172.32"; +var SHENRON_IPV6 = "2001:41c9:1:400::32"; + +var SMAUG_IPV4 = "184.104.226.110"; +var SMAUG_IPV6 = "2001:470:1:b3b::e"; +var SMAUG_INTERNAL = "10.0.64.14"; +var SMAUG_OOB = "10.0.65.14"; + +var SNAP01_INTERNAL = "10.0.48.49"; +var SNAP01_OOB = "10.0.49.49"; + +var SNAP02_INTERNAL = "10.0.0.4"; +var SNAP02_OOB = "10.0.1.4"; + +var SNAP03_INTERNAL = "10.0.64.50"; +var SNAP03_OOB = "10.0.65.50"; + +var SPIKE01_IPV4 = "184.104.226.99"; +var SPIKE01_IPV6 = "2001:470:1:b3b::3"; +var SPIKE01_INTERNAL = "10.0.64.3"; +var SPIKE01_OOB = "10.0.65.3"; + +var SPIKE02_IPV4 = "184.104.226.100"; +var SPIKE02_IPV6 = "2001:470:1:b3b::4"; +var SPIKE02_INTERNAL = "10.0.64.4"; +var SPIKE02_OOB = "10.0.65.4"; + +var SPIKE03_IPV4 = "184.104.226.101"; +var SPIKE03_IPV6 = "2001:470:1:b3b::5"; +var SPIKE03_INTERNAL = "10.0.64.5"; +var SPIKE03_OOB = "10.0.65.5"; + +var SPIKE06_IPV4 = "184.104.179.139"; +var SPIKE06_IPV6 = "2001:470:1:fa1::b"; +var SPIKE06_INTERNAL = "10.0.48.11"; +var SPIKE06_OOB = "10.0.49.11"; + +var SPIKE07_IPV4 = "184.104.179.140"; +var SPIKE07_IPV6 = "2001:470:1:fa1::c"; +var SPIKE07_INTERNAL = "10.0.48.12"; +var SPIKE07_OOB = "10.0.49.12"; + +var SPIKE08_IPV4 = "184.104.179.141"; +var SPIKE08_IPV6 = "2001:470:1:fa1::d"; +var SPIKE08_INTERNAL = "10.0.48.13"; +var SPIKE08_OOB = "10.0.49.13"; + +var STORMFLY03_IPV4 = "140.211.167.99"; +var STORMFLY03_IPV6 = "2605:bc80:3010:700::8cd3:a763"; +var STORMFLY03_OOB = "10.0.0.2"; + +var STORMFLY04_IPV4 = "140.211.167.100"; +var STORMFLY04_IPV6 = "2605:bc80:3010:700::8cd3:a764"; +var STORMFLY04_OOB = "10.0.0.3"; + +var SWITCH1AMS_IPV4 = "184.104.179.129"; +var SWITCH1AMS_IPV6 = "2001:470:1:fa1::1"; + +var SWITCH1DUB_IPV4 = "184.104.226.97"; +var SWITCH1DUB_IPV6 = "2001:470:1:b3b::1"; + +var VHAGAR_IPV4 = "184.104.179.133"; +var VHAGAR_IPV6 = "2001:470:1:fa1::5"; +var VHAGAR_INTERNAL = "10.0.48.5"; +var VHAGAR_OOB = "10.0.49.5"; + +var YSERA_IPV4 = "193.60.236.22"; +var YSERA_INTERNAL = "10.0.0.15"; +var YSERA_OOB = "10.0.1.15"; diff --git a/src/ideditor.js b/src/ideditor.js new file mode 100644 index 0000000..8706619 --- /dev/null +++ b/src/ideditor.js @@ -0,0 +1,34 @@ +D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER), + + // Publish CAA records indicating that only letsencrypt should issue certificates + + CAA_BUILDER({ + label: "@", + iodef: "mailto:hostmaster@openstreetmap.org", + issue: [ + "letsencrypt.org", + ], + issuewild: [ + "letsencrypt.org", + ], + }), + + // Delegate SPF policy to the main domain + + SPF_BUILDER({ + label: "@", + parts: [ + "v=spf1", + "include:openstreetmap.org", // main openstreetmap.org spf record + "-all" + ] + }), + + // site hosted on github pages + + ALIAS("@", "openstreetmap.github.io."), + CNAME("www", "openstreetmap.github.io."), + A("preview", NAGA_IPV4), + AAAA("preview", NAGA_IPV6) + +); diff --git a/src/nominatim.openstreetmap.yml b/src/nominatim.openstreetmap.yml new file mode 100644 index 0000000..8731bad --- /dev/null +++ b/src/nominatim.openstreetmap.yml @@ -0,0 +1,39 @@ +europe: + lat: 52.8746661 + lon: -0.7088728262458915 + colour: "#7fc97f" + servers: + - statuscake: + - 2217359 + - 2217360 + requests: 300 + name: dulcy + ipv4: 184.104.179.137 + ipv6: 2001:470:1:fa1::9 + - statuscake: + - 6224536 + - 6224537 + requests: 1500 + name: longma + ipv4: 184.104.226.109 + ipv6: 2001:470:1:b3b::d + - statuscake: + - 6726828 + - 6726827 + requests: 1500 + name: vhagar + ipv4: 184.104.179.133 + ipv6: 2001:470:1:fa1::5 + default: "xx" + +stormfly-04: + lat: 44.5639267 + lon: -123.274707837676 + statuscake: + - 5769055 + - 5769056 + colour: "#fdc086" + requests: 400 + ipv4: 140.211.167.100 + ipv6: 2605:bc80:3010:700::8cd3:a764 + default: "xx" diff --git a/src/opengeodata b/src/opengeodata deleted file mode 100644 index 9969e8a..0000000 --- a/src/opengeodata +++ /dev/null @@ -1,19 +0,0 @@ -# tinydns data for opengeodata -# -# Full reference is at http://cr.yp.to/djbdns/tinydns-data.html - -# Let Bytemark handle the DNS - -.opengeodata::a.ns.bytemark.co.uk -.opengeodata::b.ns.bytemark.co.uk -.opengeodata::c.ns.bytemark.co.uk - -# Publish a CAA record indicating that only letsencrypt should issue certificates - -:opengeodata:257:\000\005\151\163\163\165\145\154\145\164\163\145\156\143\162\171\160\164\056\157\162\147 - -# Main web server and it's aliases - -+opengeodata:193.60.236.19:600 -+old.opengeodata:193.60.236.19:600 -+www.opengeodata:193.60.236.19:600 diff --git a/src/opengeodata.js b/src/opengeodata.js new file mode 100644 index 0000000..f7824f2 --- /dev/null +++ b/src/opengeodata.js @@ -0,0 +1,33 @@ +D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER), + + // Publish CAA records indicating that only letsencrypt should issue certificates + + CAA_BUILDER({ + label: "@", + iodef: "mailto:hostmaster@openstreetmap.org", + issue: [ + "letsencrypt.org", + ], + issuewild: [ + "letsencrypt.org", + ], + }), + + // Delegate SPF policy to the main domain + + SPF_BUILDER({ + label: "@", + parts: [ + "v=spf1", + "include:openstreetmap.org", // main openstreetmap.org spf record + "-all" + ] + }), + + // Main web server and it's aliases + + A("@", RIDLEY_IPV4), + A("old", RIDLEY_IPV4), // Legacy URL support https://blog.openstreetmap.org/2010/02/25/old-opengeodata-posts-now-up-at-old-opengeodata-org/ + A("www", RIDLEY_IPV4) + +); \ No newline at end of file diff --git a/src/openstreetmap b/src/openstreetmap deleted file mode 100644 index 9039dc3..0000000 --- a/src/openstreetmap +++ /dev/null @@ -1,555 +0,0 @@ -# tinydns data for openstreetmap -# -# Full reference is at http://cr.yp.to/djbdns/tinydns-data.html - -# Set SOA values with reduced TTL for negative cache entries -Zopenstreetmap:a.ns.bytemark.co.uk:hostmaster.openstreetmap.org:::::300 - -# Let Bytemark handle the DNS - -.openstreetmap::a.ns.bytemark.co.uk -.openstreetmap::b.ns.bytemark.co.uk -.openstreetmap::c.ns.bytemark.co.uk - -# Publish a CAA record indicating that only letsencrypt should issue certificates - -:openstreetmap:257:\000\005\151\163\163\165\145\154\145\164\163\145\156\143\162\171\160\164\056\157\162\147 - -# Make the virtual machine the primary MX with Bytemark as backup - -@openstreetmap:212.110.172.32:a:10 -@noreply.openstreetmap::a.mx.openstreetmap:10 -@otrs.openstreetmap::a.mx.openstreetmap:10 -@messages.openstreetmap::a.mx.openstreetmap:10 - -3a.mx.openstreetmap:200141c9000104000000000000000032 - -# Publish an SPF record indicating that only shenron sends mail - -'openstreetmap:v=spf1 ip4\07289.16.179.150 ip4\072212.110.172.32 ip6\0722001\07241c8\07210\072996\07221d\0727dff\072fec3\072df70 ip6\0722001\07241c9\0721\072400\072\07232 ~all -'otrs.openstreetmap:v=spf1 ip4\07289.16.179.150 ip4\072212.110.172.32 ip6\0722001\07241c8\07210\072996\07221d\0727dff\072fec3\072df70 ip6\0722001\07241c9\0721\072400\072\07232 ~all - -# Google postmaster tools verification - -Caf323lytato5.openstreetmap:gv-o4v3qh5pfayqex.dv.googlehosted.com -'openstreetmap:google-site-verification=oMMclkNxMVPPk0lhThg5S7cuzUZmtL_OZWTCrAwNcqQ - -# Delegate geo.openstreetmap.org to PowerDNS - -# saphira.openstreetmap.org -&geo.openstreetmap:185.73.44.30:a.ns.openstreetmap -# ridgeback.openstreetmap.org -&geo.openstreetmap:31.169.50.10:b.ns.openstreetmap -# jakelong.openstreetmap.org -&geo.openstreetmap:71.19.155.177:c.ns.openstreetmap -# katie.openstreetmap.org -&geo.openstreetmap:144.76.70.77:d.ns.openstreetmap -# stormfly-02.openstreetmap.org -&geo.openstreetmap:140.211.167.105:e.ns.openstreetmap -# chrysophylax.openstreetmap.org -&geo.openstreetmap:217.71.244.22:f.ns.openstreetmap - -# Main web servers and their aliases - -+spike-01.openstreetmap:130.117.76.6 -3spike-01.openstreetmap:200109780002002c0000000001720006 -#+openstreetmap:130.117.76.6:600 -#3openstreetmap:200109780002002c0000000001720006:600 -#+www.openstreetmap:130.117.76.6:600 -#3www.openstreetmap:200109780002002c0000000001720006:600 -#+api.openstreetmap:130.117.76.6:600 -#3api.openstreetmap:200109780002002c0000000001720006:600 -#+maps.openstreetmap:130.117.76.6:600 -#3maps.openstreetmap:200109780002002c0000000001720006:600 -#+mapz.openstreetmap:130.117.76.6:600 -#3mapz.openstreetmap:200109780002002c0000000001720006:600 -+spike-01.ams.openstreetmap:10.0.48.6 -+spike-01.oob.openstreetmap:10.0.49.6 - -+spike-02.openstreetmap:130.117.76.7 -3spike-02.openstreetmap:200109780002002c0000000001720007 -#+openstreetmap:130.117.76.7:600 -#3openstreetmap:200109780002002c0000000001720007:600 -#+www.openstreetmap:130.117.76.7:600 -#3www.openstreetmap:200109780002002c0000000001720007:600 -#+api.openstreetmap:130.117.76.7:600 -#3api.openstreetmap:200109780002002c0000000001720007:600 -#+maps.openstreetmap:130.117.76.7:600 -#3maps.openstreetmap:200109780002002c0000000001720007:600 -#+mapz.openstreetmap:130.117.76.7:600 -#3mapz.openstreetmap:200109780002002c0000000001720007:600 -+spike-02.ams.openstreetmap:10.0.48.7 -+spike-02.oob.openstreetmap:10.0.49.7 - -+spike-03.openstreetmap:130.117.76.8 -3spike-03.openstreetmap:200109780002002c0000000001720008 -#+openstreetmap:130.117.76.8:600 -#3openstreetmap:200109780002002c0000000001720008:600 -#+www.openstreetmap:130.117.76.8:600 -#3www.openstreetmap:200109780002002c0000000001720008:600 -#+api.openstreetmap:130.117.76.8:600 -#3api.openstreetmap:200109780002002c0000000001720008:600 -#+maps.openstreetmap:130.117.76.8:600 -#3maps.openstreetmap:200109780002002c0000000001720008:600 -#+mapz.openstreetmap:130.117.76.8:600 -#3mapz.openstreetmap:200109780002002c0000000001720008:600 -+spike-03.ams.openstreetmap:10.0.48.8 -+spike-03.oob.openstreetmap:10.0.49.8 - -+spike-04.openstreetmap:89.16.162.21 -3spike-04.openstreetmap:200141c9000200d60000000000000021 -#+openstreetmap:89.16.162.21:600 -#3openstreetmap:200141c9000200d60000000000000021:600 -#+www.openstreetmap:89.16.162.21:600 -#3www.openstreetmap:200141c9000200d60000000000000021:600 -#+api.openstreetmap:89.16.162.21:600 -#3api.openstreetmap:200141c9000200d60000000000000021:600 -#+maps.openstreetmap:89.16.162.21:600 -#3maps.openstreetmap:200141c9000200d60000000000000021:600 -#+mapz.openstreetmap:89.16.162.21:600 -#3mapz.openstreetmap:200141c9000200d60000000000000021:600 -+spike-04.bm.openstreetmap:10.0.32.21 -+spike-04.oob.openstreetmap:10.0.33.21 - -+spike-05.openstreetmap:89.16.162.22 -3spike-05.openstreetmap:200141c9000200d60000000000000022 -#+openstreetmap:89.16.162.22:600 -#3openstreetmap:200141c9000200d60000000000000022:600 -#+www.openstreetmap:89.16.162.22:600 -#3www.openstreetmap:200141c9000200d60000000000000022:600 -#+api.openstreetmap:89.16.162.22:600 -#3api.openstreetmap:200141c9000200d60000000000000022:600 -#+maps.openstreetmap:89.16.162.22:600 -#3maps.openstreetmap:200141c9000200d60000000000000022:600 -#+mapz.openstreetmap:89.16.162.22:600 -#3mapz.openstreetmap:200141c9000200d60000000000000022:600 -+spike-05.bm.openstreetmap:10.0.32.22 -+spike-05.oob.openstreetmap:10.0.33.22 - -+spike-06.openstreetmap:130.117.76.11 -3spike-06.openstreetmap:200109780002002c000000000172000B -+openstreetmap:130.117.76.11:600 -3openstreetmap:200109780002002c000000000172000B:600 -+www.openstreetmap:130.117.76.11:600 -3www.openstreetmap:200109780002002c000000000172000B:600 -+api.openstreetmap:130.117.76.11:600 -3api.openstreetmap:200109780002002c000000000172000B:600 -+maps.openstreetmap:130.117.76.11:600 -3maps.openstreetmap:200109780002002c000000000172000B:600 -+mapz.openstreetmap:130.117.76.11:600 -3mapz.openstreetmap:200109780002002c000000000172000B:600 -+spike-06.ams.openstreetmap:10.0.48.11 -+spike-06.oob.openstreetmap:10.0.49.11 - -+spike-07.openstreetmap:130.117.76.12 -3spike-07.openstreetmap:200109780002002c000000000172000C -+openstreetmap:130.117.76.12:600 -3openstreetmap:200109780002002c000000000172000C:600 -+www.openstreetmap:130.117.76.12:600 -3www.openstreetmap:200109780002002c000000000172000C:600 -+api.openstreetmap:130.117.76.12:600 -3api.openstreetmap:200109780002002c000000000172000C:600 -+maps.openstreetmap:130.117.76.12:600 -3maps.openstreetmap:200109780002002c000000000172000C:600 -+mapz.openstreetmap:130.117.76.12:600 -3mapz.openstreetmap:200109780002002c000000000172000C:600 -+spike-07.ams.openstreetmap:10.0.48.12 -+spike-07.oob.openstreetmap:10.0.49.12 - -+spike-08.openstreetmap:130.117.76.13 -3spike-08.openstreetmap:200109780002002c000000000172000D -+openstreetmap:130.117.76.13:600 -3openstreetmap:200109780002002c000000000172000D:600 -+www.openstreetmap:130.117.76.13:600 -3www.openstreetmap:200109780002002c000000000172000D:600 -+api.openstreetmap:130.117.76.13:600 -3api.openstreetmap:200109780002002c000000000172000D:600 -+maps.openstreetmap:130.117.76.13:600 -3maps.openstreetmap:200109780002002c000000000172000D:600 -+mapz.openstreetmap:130.117.76.13:600 -3mapz.openstreetmap:200109780002002c000000000172000D:600 -+spike-08.ams.openstreetmap:10.0.48.13 -+spike-08.oob.openstreetmap:10.0.49.13 - -# Rails application servers - -+thorn-01.ams.openstreetmap:10.0.48.51 -+rails1.ams.openstreetmap:10.0.48.51 -+thorn-01.oob.openstreetmap:10.0.49.51 - -+thorn-02.ams.openstreetmap:10.0.48.52 -+rails2.ams.openstreetmap:10.0.48.52 -+thorn-02.oob.openstreetmap:10.0.49.52 - -+thorn-03.ams.openstreetmap:10.0.48.53 -+rails3.ams.openstreetmap:10.0.48.53 -+thorn-03.oob.openstreetmap:10.0.49.53 - -+thorn-04.bm.openstreetmap:10.0.32.41 -+rails4.bm.openstreetmap:10.0.32.41 -+thorn-04.oob.openstreetmap:10.0.33.41 - -+thorn-05.bm.openstreetmap:10.0.32.42 -+rails5.bm.openstreetmap:10.0.32.42 -+thorn-05.oob.openstreetmap:10.0.33.42 - -# Nominatim servers - -+pummelzacken.openstreetmap:193.60.236.18 -#+nominatim.openstreetmap:193.60.236.18:600 -+pummelzacken.ucl.openstreetmap:10.0.0.20 -+pummelzacken.oob.openstreetmap:10.0.1.20 - -+dulcy.openstreetmap:130.117.76.9 -3dulcy.openstreetmap:200109780002002c0000000001720009 -+nominatim.openstreetmap:130.117.76.9:600 -3nominatim.openstreetmap:200109780002002c0000000001720009:600 -+dulcy.ams.openstreetmap:10.0.48.9 -+dulcy.oob.openstreetmap:10.0.49.9 - -# Taginfo server - -+grindtooth.openstreetmap:193.60.236.15 -+taginfo.openstreetmap:193.60.236.15:600 -+grindtooth.ucl.openstreetmap:10.0.0.19 -+grindtooth.oob.openstreetmap:10.0.1.19 - -+stormfly-01.openstreetmap:140.211.167.104 -6stormfly-01.openstreetmap:2605bc8030100700000000008cdea768 -#+taginfo.openstreetmap:140.211.167.104:600 -#3taginfo.openstreetmap:2605bc8030100700000000008cdea768:600 -+stormfly-01.oob.openstreetmap:10.0.0.99 - -# Mapnik tile server, with wildcard alias to allow parallel loading - -+orm.openstreetmap:130.117.76.3 -3orm.openstreetmap:200109780002002c0000000001720003 -+orm.ams.openstreetmap:10.0.48.3 -+orm.oob.openstreetmap:10.0.49.3 - -+odin.openstreetmap:130.117.76.15 -3odin.openstreetmap:200109780002002c000000000172000F -+odin.ams.openstreetmap:10.0.48.15 -+odin.oob.openstreetmap:10.0.49.15 - -+yevaud.openstreetmap:193.60.236.22 -+yevaud.ucl.openstreetmap:10.0.0.15 -+yevaud.oob.openstreetmap:10.0.1.15 - -+scorch.openstreetmap:176.31.235.79 -3scorch.openstreetmap:200141d00002fc4f0000000000000001 - -+rhaegal.openstreetmap:161.53.248.77:600 - -+pyrene.openstreetmap:140.211.167.98 -3pyrene.openstreetmap:2605bc8030100700000000008cd3a762 -+pyrene.oob.openstreetmap:10.0.0.40 - -+bowser.openstreetmap:138.44.68.106 - -Ctile.openstreetmap:tile.geo.openstreetmap.org -Ca.tile.openstreetmap:tile.geo.openstreetmap.org -Cb.tile.openstreetmap:tile.geo.openstreetmap.org -Cc.tile.openstreetmap:tile.geo.openstreetmap.org - -# Services machine - -+ironbelly.openstreetmap:130.117.76.10 -3ironbelly.openstreetmap:200109780002002c000000000172000a -+backup.openstreetmap:130.117.76.10:600 -3backup.openstreetmap:200109780002002c000000000172000a:600 -+planet.openstreetmap:130.117.76.10:600 -3planet.openstreetmap:200109780002002c000000000172000a:600 -+logstash.openstreetmap:130.117.76.10 -3logstash.openstreetmap:200109780002002c000000000172000a -+ironbelly.ams.openstreetmap:10.0.48.10 -+ironbelly.oob.openstreetmap:10.0.49.10 - -+grisu.openstreetmap:89.16.162.20 -3grisu.openstreetmap:200141c9000200d60000000000000020 -#+backup.openstreetmap:89.16.162.20:600 -#3backup.openstreetmap:200141c9000200d60000000000000020:600 -#+planet.openstreetmap:89.16.162.20:600 -#3planet.openstreetmap:200141c9000200d60000000000000020:600 -+grisu.bm.openstreetmap:10.0.32.20 -+grisu.oob.openstreetmap:10.0.33.20 - -# Database servers - -+karm.ams.openstreetmap:10.0.48.50 -+karm.oob.openstreetmap:10.0.49.50 - -+eddie.ucl.openstreetmap:10.0.0.10 -+eddie.oob.openstreetmap:10.0.1.10 - -+katla.bm.openstreetmap:10.0.32.40 -+katla.oob.openstreetmap:10.0.33.40 - -+ramoth.ams.openstreetmap:10.0.48.5 -+ramoth.oob.openstreetmap:10.0.49.5 - -# Development server with wildcard alias for user sites - -+errol.openstreetmap:193.60.236.13 -+dev.openstreetmap:193.60.236.13 -+*.dev.openstreetmap:193.60.236.13 -+ooc.openstreetmap:193.60.236.13 -+a.ooc.openstreetmap:193.60.236.13 -+b.ooc.openstreetmap:193.60.236.13 -+c.ooc.openstreetmap:193.60.236.13 -+npe.openstreetmap:193.60.236.13 -+errol.ucl.openstreetmap:10.0.0.14 -+errol.oob.openstreetmap:10.0.1.14 - -# Foundation server - -+ridley.openstreetmap:193.60.236.19 -+otrs.openstreetmap:193.60.236.19 -+blog.openstreetmap:193.60.236.19 -+foundation.openstreetmap:193.60.236.19 -+hot.openstreetmap:193.60.236.19 -+dmca.openstreetmap:193.60.236.19 -+ridley.ucl.openstreetmap:10.0.0.3 -+ridley.oob.openstreetmap:10.0.1.3 - -# Piwik server - -+eustace.openstreetmap:193.60.236.14 -+piwik.openstreetmap:193.60.236.14 -+eustace.ucl.openstreetmap:10.0.0.9 -+eustace.oob.openstreetmap:10.0.1.9 - -# Imagery servers - -+draco.openstreetmap:193.60.236.12 -+draco.ucl.openstreetmap:10.0.0.11 -+draco.oob.openstreetmap:10.0.1.11 - -+kessie.openstreetmap:178.250.74.36 -3kessie.openstreetmap:2a02165800040000dad385fffe5d875e -+agri.openstreetmap:178.250.74.36:3600 -3agri.openstreetmap:2a02165800040000dad385fffe5d875e:3600 -+a.agri.openstreetmap:178.250.74.36:3600 -3a.agri.openstreetmap:2a02165800040000dad385fffe5d875e:3600 -+b.agri.openstreetmap:178.250.74.36:3600 -3b.agri.openstreetmap:2a02165800040000dad385fffe5d875e:3600 -+c.agri.openstreetmap:178.250.74.36:3600 -3c.agri.openstreetmap:2a02165800040000dad385fffe5d875e:3600 -+os.openstreetmap:178.250.74.36:3600 -3os.openstreetmap:2a02165800040000dad385fffe5d875e:3600 -+a.os.openstreetmap:178.250.74.36:3600 -3a.os.openstreetmap:2a02165800040000dad385fffe5d875e:3600 -+b.os.openstreetmap:178.250.74.36:3600 -3b.os.openstreetmap:2a02165800040000dad385fffe5d875e:3600 -+c.os.openstreetmap:178.250.74.36:3600 -3c.os.openstreetmap:2a02165800040000dad385fffe5d875e:3600 -+kessie.oob.openstreetmap:178.250.74.37 - -# Munin server - -+urmel.openstreetmap:193.60.236.21 -+munin.openstreetmap:193.60.236.21 -+urmel.ucl.openstreetmap:10.0.0.6 -+urmel.oob.openstreetmap:10.0.1.6 - -# Chef server - -+sarel.openstreetmap:193.60.236.20 -+chef.openstreetmap:193.60.236.20 -+hardware.openstreetmap:193.60.236.20 -+acme.openstreetmap:193.60.236.20 -+git.openstreetmap:193.60.236.20:600 -+dns.openstreetmap:193.60.236.20:600 -+sarel.ucl.openstreetmap:10.0.0.12 -+sarel.oob.openstreetmap:10.0.1.12 - -# Forum server - -+clifford.openstreetmap:193.60.236.11 -+forum.openstreetmap:193.60.236.11:600 -+clifford.ucl.openstreetmap:10.0.0.17 -+clifford.oob.openstreetmap:10.0.1.17 - -# KVMs - -+kvm1.ucl.openstreetmap:10.0.0.21 - -# Managed network switches - -+switch1.openstreetmap:130.117.76.2 -3switch1.openstreetmap:200109780002002c0000000001720002 - -# Managed power strips - -+pdu1.ams.openstreetmap:10.0.48.100 -+pdu2.ams.openstreetmap:10.0.48.101 - -# Bytemark machine, and the services which operate from it - -+shenron.openstreetmap:212.110.172.32 -+mail.openstreetmap:212.110.172.32 -+lists.openstreetmap:212.110.172.32 -+svn.openstreetmap:212.110.172.32 -+trac.openstreetmap:212.110.172.32 -+irc.openstreetmap:212.110.172.32 -+help.openstreetmap:212.110.172.32 -+blogs.openstreetmap:212.110.172.32:600 -+shenron.bm.openstreetmap:10.0.16.3 - -3shenron.openstreetmap:200141c9000104000000000000000032 -3mail.openstreetmap:200141c9000104000000000000000032 -3lists.openstreetmap:200141c9000104000000000000000032 -3svn.openstreetmap:200141c9000104000000000000000032 -3trac.openstreetmap:200141c9000104000000000000000032 -3help.openstreetmap:200141c9000104000000000000000032 -3blogs.openstreetmap:200141c9000104000000000000000032:600 - -# Wiki servers - -+ouroboros.openstreetmap:130.117.76.4 -3ouroboros.openstreetmap:200109780002002c0000000001720004 -#+wiki.openstreetmap:130.117.76.4:600 -#3wiki.openstreetmap:200109780002002c0000000001720004:600 -+ouroboros.ams.openstreetmap:10.0.48.4 -+ouroboros.oob.openstreetmap:10.0.49.4 - -+tabaluga.openstreetmap:130.117.76.14 -3tabaluga.openstreetmap:200109780002002c000000000172000E -+wiki.openstreetmap:130.117.76.14:600 -3wiki.openstreetmap:200109780002002c000000000172000E:600 -+tabaluga.ams.openstreetmap:10.0.48.14 -+tabaluga.oob.openstreetmap:10.0.49.14 - -# GPS tile server - -+noquiklos.openstreetmap:193.60.236.16 -+gps-tile.openstreetmap:193.60.236.16 -+a.gps-tile.openstreetmap:193.60.236.16 -+b.gps-tile.openstreetmap:193.60.236.16 -+c.gps-tile.openstreetmap:193.60.236.16 -+gps.tile.openstreetmap:193.60.236.16 -+gps-a.tile.openstreetmap:193.60.236.16 -+gps-b.tile.openstreetmap:193.60.236.16 -+gps-c.tile.openstreetmap:193.60.236.16 -+noquiklos.ucl.openstreetmap:10.0.0.13 -+noquiklos.oob.openstreetmap:10.0.1.13 - -# Tile cache servers - -+gorynych.openstreetmap:5.45.248.21 -3gorynych.openstreetmap:2a0206b8b0105065000000000000a001 -+trogdor.openstreetmap:134.90.146.26 -+trogdor.oob.openstreetmap:134.90.146.30 -+ridgeback.openstreetmap:31.169.50.10 -+ridgeback.oob.openstreetmap:31.169.50.14 -+jakelong.openstreetmap:71.19.155.177:600 -3jakelong.openstreetmap:2605270000000017a80000fffe3ecdca:600 -+nepomuk.openstreetmap:77.95.65.39 -3nepomuk.openstreetmap:2a039180000001000000000000000007 -+simurgh.openstreetmap:94.20.20.55 -+katie.openstreetmap:144.76.70.77 -3katie.openstreetmap:2a0104f80191834c0000000000000002 -+konqi.openstreetmap:81.7.11.83 -3konqi.openstreetmap:2a020180000100010000000005170b53 -+longma.openstreetmap:140.110.240.7 -3longma.openstreetmap:20010e10200002400000000000000007 -+viserion.openstreetmap:193.198.233.211 -3viserion.openstreetmap:20010b684cff00030000000000000003 -+drogon.openstreetmap:161.53.30.107 -3drogon.openstreetmap:20010b68c0ff000002215efffe40c7c4 -+saphira.openstreetmap:185.73.44.30 -3saphira.openstreetmap:20010ba800002c1e0000000000000000 -+toothless.openstreetmap:185.73.44.167 -3toothless.openstreetmap:20010ba800002ca70000000000000000 -+sarkany.openstreetmap:37.17.173.8 -3sarkany.openstreetmap:20014c480002bf04025056fffe8f5c81 -+cmok.openstreetmap:31.130.201.40 -3cmok.openstreetmap:2001067c22681005021e8cfffe8c8d3b -+stormfly-02.openstreetmap:140.211.167.105 -6stormfly-02.openstreetmap:2605bc8030100700000000008cdea769 -+stormfly-02.oob.openstreetmap:10.0.0.108 -+rimfaxe.openstreetmap:130.225.254.109 -3rimfaxe.openstreetmap:20010878034600000000000000000109 -+culebre.openstreetmap:155.210.4.103 -+kalessin.openstreetmap:185.66.195.245 -3kalessin.openstreetmap:2a032260200000010000000000000005 -+angor.openstreetmap:196.10.54.165 -#3angor.openstreetmap:200143f801f40b00b283fefffed8dd45 -+ladon.openstreetmap:83.212.2.116 -3ladon.openstreetmap:200106482ffe00040000000000000116 -+ascalon.openstreetmap:184.107.48.228 -+noomoahk.openstreetmap:91.224.148.166 -3noomoahk.openstreetmap:2a0372208080a6000000000000000001 -+cherufe.openstreetmap:200.91.44.37 -+norbert.openstreetmap:89.234.186.100 -3norbert.openstreetmap:2a005884821c00000000000000000001 -+chrysophylax.openstreetmap:217.71.244.22 -3chrysophylax.openstreetmap:200108e0004020390000000000000010 -+necrosan.openstreetmap:80.67.167.77 -3necrosan.openstreetmap:2a0bcbc0110d0001000000000000001c -+keizer.openstreetmap:195.201.226.63 -3keizer.openstreetmap:2a0104f81c1cbc540000000000000001 -+naga.openstreetmap:185.216.27.232 -+vipertooth.openstreetmap:176.122.99.101 -3vipertooth.openstreetmap:2001067c2d4000000000000000000065 -+tuatara.openstreetmap:114.23.141.203 -+waima.openstreetmap:103.197.61.160 -+nidhogg.openstreetmap:130.236.254.221 -3nidhogg.openstreetmap:200106b00017f0a000000000000000dd -+boitata.openstreetmap:200.236.31.207 -3boitata.openstreetmap:2801008280ff80020216ccfffeaa0021 -+fafnir.openstreetmap:130.239.18.114 -3fafnir.openstreetmap:200106b0000e2a180000000000000114 -+fume.openstreetmap:147.228.60.16 -+azure.openstreetmap:204.16.246.252 -3azure.openstreetmap:2607fdc0000100000000000000000052 - -# Blades - -+tiamat-00.openstreetmap:193.60.236.40 -+tiamat-00.ucl.openstreetmap:10.0.0.40 -+tiamat-00.oob.openstreetmap:10.0.1.40 -+tiamat-01.openstreetmap:193.60.236.41 -+tiamat-01.ucl.openstreetmap:10.0.0.41 -+tiamat-01.oob.openstreetmap:10.0.1.41 -+tiamat-02.openstreetmap:193.60.236.42 -+tiamat-02.ucl.openstreetmap:10.0.0.42 -+tiamat-02.oob.openstreetmap:10.0.1.42 -+tiamat-03.openstreetmap:193.60.236.43 -+tiamat-03.ucl.openstreetmap:10.0.0.43 -+tiamat-03.oob.openstreetmap:10.0.1.43 -+tiamat-10.openstreetmap:193.60.236.44 -+tiamat-10.ucl.openstreetmap:10.0.0.44 -+tiamat-10.oob.openstreetmap:10.0.1.44 -+tiamat-11.openstreetmap:193.60.236.45 -+tiamat-11.ucl.openstreetmap:10.0.0.45 -+tiamat-11.oob.openstreetmap:10.0.1.45 -+tiamat-12.openstreetmap:193.60.236.46 -+tiamat-12.ucl.openstreetmap:10.0.0.46 -+tiamat-12.oob.openstreetmap:10.0.1.46 -+tiamat-13.openstreetmap:193.60.236.47 -+tiamat-13.ucl.openstreetmap:10.0.0.47 -+tiamat-13.oob.openstreetmap:10.0.1.47 -+tiamat-20.openstreetmap:193.60.236.48 -+tiamat-20.ucl.openstreetmap:10.0.0.48 -+tiamat-20.oob.openstreetmap:10.0.1.48 -+tiamat-21.openstreetmap:193.60.236.49 -+tiamat-21.ucl.openstreetmap:10.0.0.49 -+tiamat-21.oob.openstreetmap:10.0.1.49 -+tiamat-22.openstreetmap:193.60.236.50 -+tiamat-22.ucl.openstreetmap:10.0.0.50 -+tiamat-22.oob.openstreetmap:10.0.1.50 -+tiamat-23.openstreetmap:193.60.236.51 -+tiamat-23.ucl.openstreetmap:10.0.0.51 -+tiamat-23.oob.openstreetmap:10.0.1.51 - -# Donation site - -+donate.openstreetmap:193.60.236.19:300 - -# Uptime site at StatusCake - -Cuptime.openstreetmap:uptimessl.statuscake.com - -# Custom Domain for https://github.com/osmfoundation/welcome-mat/ -Cwelcome.openstreetmap:osmfoundation.github.io diff --git a/src/openstreetmap-mg.js b/src/openstreetmap-mg.js new file mode 100644 index 0000000..80ae23c --- /dev/null +++ b/src/openstreetmap-mg.js @@ -0,0 +1,29 @@ +D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER), + + // Publish CAA records indicating that only letsencrypt should issue certificates + + CAA_BUILDER({ + label: "@", + iodef: "mailto:hostmaster@openstreetmap.org", + issue: [ + "letsencrypt.org", + ], + issuewild: [ + "letsencrypt.org", + ], + }), + + // Block email delivery + + TXT("_dmarc", "v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s;"), + TXT("*._domainkey", "v=DKIM1; p="), + TXT("@", "v=spf1 -all"), + + // Site hosted on github pages + + ALIAS("@", "openstreetmap-madagascar.github.io."), + CNAME("www", "openstreetmap-madagascar.github.io."), + + CNAME("sotm2024", "openstreetmap-madagascar.github.io.") + +); \ No newline at end of file diff --git a/src/openstreetmap-town.js b/src/openstreetmap-town.js new file mode 100644 index 0000000..0d56540 --- /dev/null +++ b/src/openstreetmap-town.js @@ -0,0 +1,40 @@ +D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER), + + // Publish CAA records indicating that only letsencrypt should issue certificates + + CAA_BUILDER({ + label: "@", + iodef: "mailto:hostmaster@openstreetmap.org", + issue: [ + "letsencrypt.org", + ], + issuewild: [ + "letsencrypt.org", + ], + }), + + // Let the main domain handle the email + + MX("@", 10, "a.mx.openstreetmap.org."), + + // Delegate SPF policy to the main domain + + SPF_BUILDER({ + label: "@", + parts: [ + "v=spf1", + "include:openstreetmap.org", // main openstreetmap.org spf record + "-all" + ] + }), + + // Delegate MTA-STS policy to the main domain + + CNAME("_mta-sts", "_mta-sts.openstreetmap.org."), + + // Redirect en.openstreetmap.town to en.osm.town + + A("en", NAGA_IPV4), + AAAA("en", NAGA_IPV6) + +); \ No newline at end of file diff --git a/src/openstreetmap-uk b/src/openstreetmap-uk deleted file mode 100644 index 699e8be..0000000 --- a/src/openstreetmap-uk +++ /dev/null @@ -1,70 +0,0 @@ -# tinydns data for openstreetmap.[org|co].uk -# -# Full reference is at http://cr.yp.to/djbdns/tinydns-data.html - -# Let Bytemark handle the DNS - -.openstreetmap-uk::a.ns.bytemark.co.uk -.openstreetmap-uk::b.ns.bytemark.co.uk -.openstreetmap-uk::c.ns.bytemark.co.uk - -# Publish a CAA record indicating that only letsencrypt should issue certificates - -:openstreetmap-uk:257:\000\005\151\163\163\165\145\154\145\164\163\145\156\143\162\171\160\164\056\157\162\147 - -# Make the virtual machine the primary MX with Bytemark as backup - -@openstreetmap-uk::a.mx.openstreetmap.org:10 - -# Publish an SPF record indicating that only shenron sends mail - -'openstreetmap-uk:v=spf1 include\072openstreetmap.org ~all - -# Main web servers and their aliases - -+openstreetmap-uk:193.63.75.99:600 -+openstreetmap-uk:193.63.75.100:600 -+openstreetmap-uk:193.63.75.103:600 - -Cwww.openstreetmap-uk:www.openstreetmap.org -Capi.openstreetmap-uk:api.openstreetmap.org - -# Andy Street calendar instance -Ccalendar.openstreetmap-uk:osmcal.street.me.uk - -# Shaun McDonald taginfo instance -Ctaginfo.openstreetmap-uk:proxy.mythic-beasts.com - -# Aerial imagery sites -+hampshire.aerial.openstreetmap-uk:178.250.74.36:3600 -3hampshire.aerial.openstreetmap-uk:2a02165800040000dad385fffe5d875e:3600 -+a.hampshire.aerial.openstreetmap-uk:178.250.74.36:3600 -3a.hampshire.aerial.openstreetmap-uk:2a02165800040000dad385fffe5d875e:3600 -+b.hampshire.aerial.openstreetmap-uk:178.250.74.36:3600 -3b.hampshire.aerial.openstreetmap-uk:2a02165800040000dad385fffe5d875e:3600 -+c.hampshire.aerial.openstreetmap-uk:178.250.74.36:3600 -3c.hampshire.aerial.openstreetmap-uk:2a02165800040000dad385fffe5d875e:3600 -+surrey.aerial.openstreetmap-uk:178.250.74.36:3600 -3surrey.aerial.openstreetmap-uk:2a02165800040000dad385fffe5d875e:3600 -+a.surrey.aerial.openstreetmap-uk:178.250.74.36:3600 -3a.surrey.aerial.openstreetmap-uk:2a02165800040000dad385fffe5d875e:3600 -+b.surrey.aerial.openstreetmap-uk:178.250.74.36:3600 -3b.surrey.aerial.openstreetmap-uk:2a02165800040000dad385fffe5d875e:3600 -+c.surrey.aerial.openstreetmap-uk:178.250.74.36:3600 -3c.surrey.aerial.openstreetmap-uk:2a02165800040000dad385fffe5d875e:3600 -+os.openstreetmap-uk:178.250.74.36:3600 -3os.openstreetmap-uk:2a02165800040000dad385fffe5d875e:3600 -+a.os.openstreetmap-uk:178.250.74.36:3600 -3a.os.openstreetmap-uk:2a02165800040000dad385fffe5d875e:3600 -+b.os.openstreetmap-uk:178.250.74.36:3600 -3b.os.openstreetmap-uk:2a02165800040000dad385fffe5d875e:3600 -+c.os.openstreetmap-uk:178.250.74.36:3600 -3c.os.openstreetmap-uk:2a02165800040000dad385fffe5d875e:3600 -+ea.openstreetmap-uk:178.250.74.36:3600 -3ea.openstreetmap-uk:2a02165800040000dad385fffe5d875e:3600 -+a.ea.openstreetmap-uk:178.250.74.36:3600 -3a.ea.openstreetmap-uk:2a02165800040000dad385fffe5d875e:3600 -+b.ea.openstreetmap-uk:178.250.74.36:3600 -3b.ea.openstreetmap-uk:2a02165800040000dad385fffe5d875e:3600 -+c.ea.openstreetmap-uk:178.250.74.36:3600 -3c.ea.openstreetmap-uk:2a02165800040000dad385fffe5d875e:3600 diff --git a/src/openstreetmap-uk.js b/src/openstreetmap-uk.js new file mode 100644 index 0000000..f1f3d32 --- /dev/null +++ b/src/openstreetmap-uk.js @@ -0,0 +1,83 @@ +D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER), + + // Publish CAA records indicating that only letsencrypt should issue certificates + + CAA_BUILDER({ + label: "@", + iodef: "mailto:hostmaster@openstreetmap.org", + issue: [ + "letsencrypt.org", + ], + issuewild: [ + "letsencrypt.org", + ], + }), + + // Let the main domain handle the email + + MX("@", 10, "a.mx.openstreetmap.org."), + + // Delegate SPF policy to the main domain + + SPF_BUILDER({ + label: "@", + parts: [ + "v=spf1", + "include:openstreetmap.org", // main openstreetmap.org spf record + "-all" + ] + }), + + // Delegate MTA-STS policy to the main domain + + CNAME("_mta-sts", "_mta-sts.openstreetmap.org."), + + // Main web site + + ALIAS("@", "www.openstreetmap.org."), + CNAME("www", "www.openstreetmap.org."), + CNAME("api", "api.openstreetmap.org."), + + // Shaun McDonald's taginfo instance + + CNAME("taginfo", "proxy.mythic-beasts.com."), + + // Aerial imagery sites + + A("hampshire.aerial", KESSIE_IPV4, TTL("1h")), + AAAA("hampshire.aerial", KESSIE_IPV6, TTL("1h")), + A("a.hampshire.aerial", KESSIE_IPV4, TTL("1h")), + AAAA("a.hampshire.aerial", KESSIE_IPV6, TTL("1h")), + A("b.hampshire.aerial", KESSIE_IPV4, TTL("1h")), + AAAA("b.hampshire.aerial", KESSIE_IPV6, TTL("1h")), + A("c.hampshire.aerial", KESSIE_IPV4, TTL("1h")), + AAAA("c.hampshire.aerial", KESSIE_IPV6, TTL("1h")), + + A("surrey.aerial", KESSIE_IPV4, TTL("1h")), + AAAA("surrey.aerial", KESSIE_IPV6, TTL("1h")), + A("a.surrey.aerial", KESSIE_IPV4, TTL("1h")), + AAAA("a.surrey.aerial", KESSIE_IPV6, TTL("1h")), + A("b.surrey.aerial", KESSIE_IPV4, TTL("1h")), + AAAA("b.surrey.aerial", KESSIE_IPV6, TTL("1h")), + A("c.surrey.aerial", KESSIE_IPV4, TTL("1h")), + AAAA("c.surrey.aerial", KESSIE_IPV6, TTL("1h")), + + A("os", KESSIE_IPV4, TTL("1h")), + AAAA("os", KESSIE_IPV6, TTL("1h")), + A("a.os", KESSIE_IPV4, TTL("1h")), + AAAA("a.os", KESSIE_IPV6, TTL("1h")), + A("b.os", KESSIE_IPV4, TTL("1h")), + AAAA("b.os", KESSIE_IPV6, TTL("1h")), + A("c.os", KESSIE_IPV4, TTL("1h")), + AAAA("c.os", KESSIE_IPV6, TTL("1h")), + + A("ea", KESSIE_IPV4, TTL("1h")), + AAAA("ea", KESSIE_IPV6, TTL("1h")), + A("a.ea", KESSIE_IPV4, TTL("1h")), + AAAA("a.ea", KESSIE_IPV6, TTL("1h")), + A("b.ea", KESSIE_IPV4, TTL("1h")), + AAAA("b.ea", KESSIE_IPV6, TTL("1h")), + A("c.ea", KESSIE_IPV4, TTL("1h")), + AAAA("c.ea", KESSIE_IPV6, TTL("1h")) + +); diff --git a/src/openstreetmap-za b/src/openstreetmap-za deleted file mode 100644 index 9fd093e..0000000 --- a/src/openstreetmap-za +++ /dev/null @@ -1,67 +0,0 @@ -# tinydns data for [openstreetmap|org].org.za -# -# Full reference is at http://cr.yp.to/djbdns/tinydns-data.html - -# Let Bytemark handle the DNS - -.openstreetmap-za::a.ns.bytemark.co.uk -.openstreetmap-za::b.ns.bytemark.co.uk -.openstreetmap-za::c.ns.bytemark.co.uk - -# Publish a CAA record indicating that only letsencrypt should issue certificates - -:openstreetmap-za:257:\000\005\151\163\163\165\145\154\145\164\163\145\156\143\162\171\160\164\056\157\162\147 - -# Make the virtual machine the primary MX with Bytemark as backup - -@openstreetmap-za::a.mx.openstreetmap.org:10 - -# Publish an SPF record indicating that only shenron sends mail - -'openstreetmap-za:v=spf1 include\072openstreetmap.org ~all - -# Main web servers and their aliases - -+openstreetmap-za:193.63.75.99:600 -+openstreetmap-za:193.63.75.100:600 -+openstreetmap-za:193.63.75.103:600 - -Cwww.openstreetmap-za:www.openstreetmap.org -Capi.openstreetmap-za:api.openstreetmap.org - -Cwww.openstreetmap-za:openstreetmap-za - -# Aerial imagery sites - -# Draco -+aerial.openstreetmap-za:193.60.236.12:600 -+a.aerial.openstreetmap-za:193.60.236.12:600 -+b.aerial.openstreetmap-za:193.60.236.12:600 -+c.aerial.openstreetmap-za:193.60.236.12:600 - -# Kessie -+coct.aerial.openstreetmap-za:178.250.74.36:1800 -3coct.aerial.openstreetmap-za:2a02165800040000dad385fffe5d875e:1800 -+a.coct.aerial.openstreetmap-za:178.250.74.36:1800 -3a.coct.aerial.openstreetmap-za:2a02165800040000dad385fffe5d875e:1800 -+b.coct.aerial.openstreetmap-za:178.250.74.36:1800 -3b.coct.aerial.openstreetmap-za:2a02165800040000dad385fffe5d875e:1800 -+c.coct.aerial.openstreetmap-za:178.250.74.36:1800 -3c.coct.aerial.openstreetmap-za:2a02165800040000dad385fffe5d875e:1800 -+topo.openstreetmap-za:178.250.74.36:1800 -3topo.openstreetmap-za:2a02165800040000dad385fffe5d875e:1800 -+a.topo.openstreetmap-za:178.250.74.36:1800 -3a.topo.openstreetmap-za:2a02165800040000dad385fffe5d875e:1800 -+b.topo.openstreetmap-za:178.250.74.36:1800 -3b.topo.openstreetmap-za:2a02165800040000dad385fffe5d875e:1800 -+c.topo.openstreetmap-za:178.250.74.36:1800 -3c.topo.openstreetmap-za:2a02165800040000dad385fffe5d875e:1800 - -+namibia-topo.openstreetmap-za:178.250.74.36:1800 -3namibia-topo.openstreetmap-za:2a02165800040000dad385fffe5d875e:1800 -+a.namibia-topo.openstreetmap-za:178.250.74.36:1800 -3a.namibia-topo.openstreetmap-za:2a02165800040000dad385fffe5d875e:1800 -+b.namibia-topo.openstreetmap-za:178.250.74.36:1800 -3b.namibia-topo.openstreetmap-za:2a02165800040000dad385fffe5d875e:1800 -+c.namibia-topo.openstreetmap-za:178.250.74.36:1800 -3c.namibia-topo.openstreetmap-za:2a02165800040000dad385fffe5d875e:1800 diff --git a/src/openstreetmap-za.js b/src/openstreetmap-za.js new file mode 100644 index 0000000..4fa90fd --- /dev/null +++ b/src/openstreetmap-za.js @@ -0,0 +1,81 @@ +D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER), + + // Publish CAA records indicating that only letsencrypt should issue certificates + + CAA_BUILDER({ + label: "@", + iodef: "mailto:hostmaster@openstreetmap.org", + issue: [ + "letsencrypt.org", + ], + issuewild: [ + "letsencrypt.org", + ], + }), + + // Let the main domain handle the email + + MX("@", 10, "a.mx.openstreetmap.org."), + + // Delegate SPF policy to the main domain + + SPF_BUILDER({ + label: "@", + parts: [ + "v=spf1", + "include:openstreetmap.org", // main openstreetmap.org spf record + "-all" + ] + }), + + // Delegate MTA-STS policy to the main domain + + CNAME("_mta-sts", "_mta-sts.openstreetmap.org."), + + // Main web site + + ALIAS("@", "www.openstreetmap.org."), + CNAME("www", "www.openstreetmap.org."), + CNAME("api", "api.openstreetmap.org."), + + // Aerial imagery sites on ironbelly + + A("aerial", IRONBELLY_IPV4), + AAAA("aerial", IRONBELLY_IPV6), + A("a.aerial", IRONBELLY_IPV4), + AAAA("a.aerial", IRONBELLY_IPV6), + A("b.aerial", IRONBELLY_IPV4), + AAAA("b.aerial", IRONBELLY_IPV6), + A("c.aerial", IRONBELLY_IPV4), + AAAA("c.aerial", IRONBELLY_IPV6), + + // Aerial imagery sites on kessie + + A("coct.aerial", KESSIE_IPV4), + AAAA("coct.aerial", KESSIE_IPV6), + A("a.coct.aerial", KESSIE_IPV4), + AAAA("a.coct.aerial", KESSIE_IPV6), + A("b.coct.aerial", KESSIE_IPV4), + AAAA("b.coct.aerial", KESSIE_IPV6), + A("c.coct.aerial", KESSIE_IPV4), + AAAA("c.coct.aerial", KESSIE_IPV6), + + A("topo", KESSIE_IPV4), + AAAA("topo", KESSIE_IPV6), + A("a.topo", KESSIE_IPV4), + AAAA("a.topo", KESSIE_IPV6), + A("b.topo", KESSIE_IPV4), + AAAA("b.topo", KESSIE_IPV6), + A("c.topo", KESSIE_IPV4), + AAAA("c.topo", KESSIE_IPV6), + + A("namibia-topo", KESSIE_IPV4), + AAAA("namibia-topo", KESSIE_IPV6), + A("a.namibia-topo", KESSIE_IPV4), + AAAA("a.namibia-topo", KESSIE_IPV6), + A("b.namibia-topo", KESSIE_IPV4), + AAAA("b.namibia-topo", KESSIE_IPV6), + A("c.namibia-topo", KESSIE_IPV4), + AAAA("c.namibia-topo", KESSIE_IPV6) + +); diff --git a/src/openstreetmap.js b/src/openstreetmap.js new file mode 100644 index 0000000..36a4016 --- /dev/null +++ b/src/openstreetmap.js @@ -0,0 +1,662 @@ +D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER), + + // Publish CAA records indicating that only letsencrypt and globalsign (Fastly) should issue certificates + + CAA_BUILDER({ + label: "@", + ttl: "1h", + iodef: "mailto:hostmaster@openstreetmap.org", + issue: [ + "letsencrypt.org", + "globalsign.com", // Used by Fastly for CDN certificates + ], + issuewild: [ + "letsencrypt.org", + "globalsign.com", // Used by Fastly for CDN certificates + ], + }), + + // Mail service + + MX("@", 10, QUALIFY("a.mx")), + MX("messages", 10, QUALIFY("a.mx")), + MX("noreply", 10, QUALIFY("a.mx")), + MX("otrs", 10, QUALIFY("a.mx")), + MX("community", 10, QUALIFY("a.mx")), + MX("supporting", 10, QUALIFY("a.mx")), + + A("a.mx", FAFNIR_IPV4), + AAAA("a.mx", FAFNIR_IPV6), + A("mail", FAFNIR_IPV4), + AAAA("mail", FAFNIR_IPV6), + A("mta-sts", FAFNIR_IPV4), + AAAA("mta-sts", FAFNIR_IPV6), + + // Publish SPF records indicating that only shenron sends mail + + SPF_BUILDER({ + label: "@", + parts: [ + "v=spf1", + "ip4:212.110.172.32", // shenron ipv4 + "ip6:2001:41c9:1:400::32", // shenron ipv6 + "ip4:184.104.226.98", // fafnir ipv4 + "ip6:2001:470:1:b3b::2", // fafnir ipv6 + "ip4:193.60.236.0/24", // ucl external + "ip4:184.104.179.128/27", // amsterdam external + "ip6:2001:470:1:fa1::/64", // amsterdam external + "ip4:184.104.226.96/27", // dublin external + "ip6:2001:470:1:b3b::/64", // dublin external + "mx", // safety net if we change mx + "-all" + ] + }), + + SPF_BUILDER({ + label: "messages", + parts: [ + "v=spf1", + "ip4:212.110.172.32", // shenron ipv4 + "ip6:2001:41c9:1:400::32", // shenron ipv6 + "ip4:184.104.226.98", // fafnir ipv4 + "ip6:2001:470:1:b3b::2", // fafnir ipv6 + "ip4:193.60.236.0/24", // ucl external + "ip4:184.104.179.128/27", // amsterdam external + "ip6:2001:470:1:fa1::/64", // amsterdam external + "ip4:184.104.226.96/27", // dublin external + "ip6:2001:470:1:b3b::/64", // dublin external + "mx", // safety net if we change mx + "-all" + ] + }), + + SPF_BUILDER({ + label: "noreply", + parts: [ + "v=spf1", + "ip4:212.110.172.32", // shenron ipv4 + "ip6:2001:41c9:1:400::32", // shenron ipv6 + "ip4:184.104.226.98", // fafnir ipv4 + "ip6:2001:470:1:b3b::2", // fafnir ipv6 + "ip4:193.60.236.0/24", // ucl external + "ip4:184.104.179.128/27", // amsterdam external + "ip6:2001:470:1:fa1::/64", // amsterdam external + "ip4:184.104.226.96/27", // dublin external + "ip6:2001:470:1:b3b::/64", // dublin external + "mx", // safety net if we change mx + "-all" + ] + }), + + SPF_BUILDER({ + label: "otrs", + parts: [ + "v=spf1", + "ip4:212.110.172.32", // shenron ipv4 + "ip6:2001:41c9:1:400::32", // shenron ipv6 + "ip4:184.104.226.98", // fafnir ipv4 + "ip6:2001:470:1:b3b::2", // fafnir ipv6 + "ip4:193.60.236.0/24", // ucl external + "ip4:184.104.179.128/27", // amsterdam external + "ip6:2001:470:1:fa1::/64", // amsterdam external + "ip4:184.104.226.96/27", // dublin external + "ip6:2001:470:1:b3b::/64", // dublin external + "mx", // safety net if we change mx + "-all" + ] + }), + + SPF_BUILDER({ + label: "community", + parts: [ + "v=spf1", + "ip4:212.110.172.32", // shenron ipv4 + "ip6:2001:41c9:1:400::32", // shenron ipv6 + "ip4:184.104.226.98", // fafnir ipv4 + "ip6:2001:470:1:b3b::2", // fafnir ipv6 + "ip4:193.60.236.0/24", // ucl external + "ip4:184.104.179.128/27", // amsterdam external + "ip6:2001:470:1:fa1::/64", // amsterdam external + "ip4:184.104.226.96/27", // dublin external + "ip6:2001:470:1:b3b::/64", // dublin external + "mx", // safety net if we change mx + "-all" + ] + }), + + SPF_BUILDER({ + label: "supporting", + parts: [ + "v=spf1", + "ip4:212.110.172.32", // shenron ipv4 + "ip6:2001:41c9:1:400::32", // shenron ipv6 + "ip4:184.104.226.98", // fafnir ipv4 + "ip6:2001:470:1:b3b::2", // fafnir ipv6 + "ip4:193.60.236.0/24", // ucl external + "ip4:184.104.179.128/27", // amsterdam external + "ip6:2001:470:1:fa1::/64", // amsterdam external + "ip4:184.104.226.96/27", // dublin external + "ip6:2001:470:1:b3b::/64", // dublin external + "mx", // safety net if we change mx + "-all" + ] + }), + + // Publish DKIM public key + + TXT("20200301._domainkey", "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzvoNZVOGfw1V4A171hxHMhzVTAnIUQVJ8iX3wbqCld8A5iIaXeTGYvBmewymax/cYJS4QqzbpUzkgrrTA9avuZhd+QGJDgjADgx4VyMOaOS6FwAxS0uXtLrt+lsixRDx/feKyZHaxjzJAQy46ok77xXL4UXIaaovw6G6eZpIScMzZQ2zkKNJxTICzzSOduIilHhMWte4XP+/2PdRmD7Ge9jb0U4bZjswX0AqKSGzDKYw+yxVna9l53adeCnklqg2ofoXu+ResiH+kt05aCUOMo8en3em6yBnRCMalgi1E3Tt7I5BWcYFRkT/8agUGW4gGC6XMV9IskOsYL0emG0kGwIDAQAB", AUTOSPLIT), + + // Publish DMARC report-only policy + + DMARC_BUILDER({ + policy: "none", + rua: [ + "mailto:openstreetmap-d@dmarc.report-uri.com" + ], + failureOptions: 1 + }), + + // Announce MTA-STS policy and TLSRPT policy for error reports + + TXT("_mta-sts", "v=STSv1; id=202001291805Z"), + TXT("_smtp._tls", "v=TLSRPTv1; rua=mailto:openstreetmap-d@tlsrpt.report-uri.com"), + + // Fastly cert domain ownership confirmation + + TXT("@", "_globalsign-domain-verification=ps00GlW1BzY9c2_cwH_pFqRkvzZyaCVZ-3RLssRG6S"), + TXT("@", "_globalsign-domain-verification=W0buKB5ZmL-VwwHw2oQyQImk3I1q3hSemf2qmB1hjP"), + + // Facebook Business domain verification + TXT("@", "facebook-domain-verification=j5hix5i8r0kortfugqf2p9wx9x9by0"), + + // Delegate MTA-STS policy for subdomains + + CNAME("_mta-sts.messages", QUALIFY("_mta-sts")), + CNAME("_mta-sts.noreply", QUALIFY("_mta-sts")), + CNAME("_mta-sts.otrs", QUALIFY("_mta-sts")), + CNAME("_mta-sts.community", QUALIFY("_mta-sts")), + CNAME("_mta-sts.supporting", QUALIFY("_mta-sts")), + + // Google postmaster tools verification + + CNAME("af323lytato5", "gv-o4v3qh5pfayqex.dv.googlehosted.com."), + CNAME("irzdddnmh465", "gv-cwr6bvt7xsgact.dv.googlehosted.com."), + + // Main web servers and their aliases + + A("spike-01", SPIKE01_IPV4), + AAAA("spike-01", SPIKE01_IPV6), + // A("@", SPIKE01_IPV4), + // AAAA("@", SPIKE01_IPV6), + // A("www", SPIKE01_IPV4), + // AAAA("www", SPIKE01_IPV6), + // A("api", SPIKE01_IPV4), + // AAAA("api", SPIKE01_IPV6), + // A("maps", SPIKE01_IPV4), + // AAAA("maps", SPIKE01_IPV6), + // A("mapz", SPIKE01_IPV4), + // AAAA("mapz", SPIKE01_IPV6), + A("spike-01.dub", SPIKE01_INTERNAL), + A("spike-01.oob", SPIKE01_OOB), + + A("spike-02", SPIKE02_IPV4), + AAAA("spike-02", SPIKE02_IPV6), + // A("@", SPIKE02_IPV4), + // AAAA("@", SPIKE02_IPV6), + // A("www", SPIKE02_IPV4), + // AAAA("www", SPIKE02_IPV6), + // A("api", SPIKE02_IPV4), + // AAAA("api", SPIKE02_IPV6), + // A("maps", SPIKE02_IPV4), + // AAAA("maps", SPIKE02_IPV6), + // A("mapz", SPIKE02_IPV4), + // AAAA("mapz", SPIKE02_IPV6), + A("spike-02.dub", SPIKE02_INTERNAL), + A("spike-02.oob", SPIKE02_OOB), + + A("spike-03", SPIKE03_IPV4), + AAAA("spike-03", SPIKE03_IPV6), + // A("@", SPIKE03_IPV4), + // AAAA("@", SPIKE03_IPV6), + // A("www", SPIKE03_IPV4), + // AAAA("www", SPIKE03_IPV6), + // A("api", SPIKE03_IPV4), + // AAAA("api", SPIKE03_IPV6), + // A("maps", SPIKE03_IPV4), + // AAAA("maps", SPIKE03_IPV6), + // A("mapz", SPIKE03_IPV4), + // AAAA("mapz", SPIKE03_IPV6), + A("spike-03.dub", SPIKE03_INTERNAL), + A("spike-03.oob", SPIKE03_OOB), + + A("spike-06", SPIKE06_IPV4), + AAAA("spike-06", SPIKE06_IPV6), + A("@", SPIKE06_IPV4), + AAAA("@", SPIKE06_IPV6), + A("www", SPIKE06_IPV4), + AAAA("www", SPIKE06_IPV6), + A("api", SPIKE06_IPV4), + AAAA("api", SPIKE06_IPV6), + A("maps", SPIKE06_IPV4), + AAAA("maps", SPIKE06_IPV6), + A("mapz", SPIKE06_IPV4), + AAAA("mapz", SPIKE06_IPV6), + A("spike-06.ams", SPIKE06_INTERNAL), + A("spike-06.oob", SPIKE06_OOB), + + A("spike-07", SPIKE07_IPV4), + AAAA("spike-07", SPIKE07_IPV6), + A("@", SPIKE07_IPV4), + AAAA("@", SPIKE07_IPV6), + A("www", SPIKE07_IPV4), + AAAA("www", SPIKE07_IPV6), + A("api", SPIKE07_IPV4), + AAAA("api", SPIKE07_IPV6), + A("maps", SPIKE07_IPV4), + AAAA("maps", SPIKE07_IPV6), + A("mapz", SPIKE07_IPV4), + AAAA("mapz", SPIKE07_IPV6), + A("spike-07.ams", SPIKE07_INTERNAL), + A("spike-07.oob", SPIKE07_OOB), + + A("spike-08", SPIKE08_IPV4), + AAAA("spike-08", SPIKE08_IPV6), + A("@", SPIKE08_IPV4), + AAAA("@", SPIKE08_IPV6), + A("www", SPIKE08_IPV4), + AAAA("www", SPIKE08_IPV6), + A("api", SPIKE08_IPV4), + AAAA("api", SPIKE08_IPV6), + A("maps", SPIKE08_IPV4), + AAAA("maps", SPIKE08_IPV6), + A("mapz", SPIKE08_IPV4), + AAAA("mapz", SPIKE08_IPV6), + A("spike-08.ams", SPIKE08_INTERNAL), + A("spike-08.oob", SPIKE08_OOB), + + // Nominatim servers + + A("dulcy", DULCY_IPV4), + AAAA("dulcy", DULCY_IPV6), + A("dulcy.ams", DULCY_INTERNAL), + A("dulcy.oob", DULCY_OOB), + + A("longma", LONGMA_IPV4), + AAAA("longma", LONGMA_IPV6), + A("longma.dub", LONGMA_INTERNAL), + A("longma.oob", LONGMA_OOB), + + A("stormfly-04", STORMFLY04_IPV4), + AAAA("stormfly-04", STORMFLY04_IPV6), + A("stormfly-04.oob", STORMFLY04_OOB), + + A("vhagar", VHAGAR_IPV4), + AAAA("vhagar", VHAGAR_IPV6), + A("vhagar.ams", VHAGAR_INTERNAL), + A("vhagar.oob", VHAGAR_OOB), + + CNAME("nominatim", "nominatim.geo.openstreetmap.org."), + CNAME("qgis.nominatim", "nominatim.geo.openstreetmap.org."), + CNAME("qa-tile.nominatim", "longma.openstreetmap.org."), + + // Taginfo server + + A("dribble", DRIBBLE_IPV4), + A("taginfo", DRIBBLE_IPV4), + AAAA("dribble", DRIBBLE_IPV6), + AAAA("taginfo", DRIBBLE_IPV6), + A("dribble.ams", DRIBBLE_INTERNAL), + A("dribble.oob", DRIBBLE_OOB), + + // Tile servers + + A("odin", ODIN_IPV4), + AAAA("odin", ODIN_IPV6), + A("odin.ams", ODIN_INTERNAL), + A("odin.oob", ODIN_OOB), + + A("ysera", YSERA_IPV4), + A("ysera.ucl", YSERA_INTERNAL), + A("ysera.oob", YSERA_OOB), + + A("culebre", CULEBRE_IPV4), + AAAA("culebre", CULEBRE_IPV6), + A("culebre.dub", CULEBRE_INTERNAL), + A("culebre.oob", CULEBRE_OOB), + + A("nidhogg", NIDHOGG_IPV4), + AAAA("nidhogg", NIDHOGG_IPV6), + A("nidhogg.oob", NIDHOGG_OOB), + + A("scorch", SCORCH_IPV4), + AAAA("scorch", SCORCH_IPV6), + + A("rhaegal", RHAEGAL_IPV4), + + A("palulukon", PALULUKON_IPV4), + + A("piasa", PIASA_IPV4), + AAAA("piasa", PIASA_IPV6), + A("piasa.oob", PIASA_OOB), + + A("bowser", BOWSER_IPV4), + + A("balerion", BALERION_IPV4), + + A("albi", ALBI_IPV4), + AAAA("albi", ALBI_IPV6), + + A("necrosan", NECROSAN_IPV4), + AAAA("necrosan", NECROSAN_IPV6), + + CNAME("tile", "dualstack.n.sni.global.fastly.net."), + CNAME("a.tile", "dualstack.n.sni.global.fastly.net."), + CNAME("b.tile", "dualstack.n.sni.global.fastly.net."), + CNAME("c.tile", "dualstack.n.sni.global.fastly.net."), + + A("render", CULEBRE_IPV4), + A("render", NIDHOGG_IPV4), + AAAA("render", CULEBRE_IPV6), + AAAA("render", NIDHOGG_IPV6), + + // Site gateways + + A("ironbelly", IRONBELLY_IPV4), + AAAA("ironbelly", IRONBELLY_IPV6), + A("logstash", IRONBELLY_IPV4), + AAAA("logstash", IRONBELLY_IPV6), + A("tiler", IRONBELLY_IPV4), + AAAA("tiler", IRONBELLY_IPV6), + A("ironbelly.ams", IRONBELLY_INTERNAL), + A("ironbelly.oob", IRONBELLY_OOB), + + A("fafnir", FAFNIR_IPV4), + AAAA("fafnir", FAFNIR_IPV6), + A("fafnir.dub", FAFNIR_INTERNAL), + A("fafnir.oob", FAFNIR_OOB), + + // Planet servers + + A("norbert", NORBERT_IPV4), + AAAA("norbert", NORBERT_IPV6), + A("backup", NORBERT_IPV4), + AAAA("backup", NORBERT_IPV6), + A("planet", NORBERT_IPV4), + AAAA("planet", NORBERT_IPV6), + A("norbert.ams", NORBERT_INTERNAL), + A("norbert.oob", NORBERT_OOB), + + A("horntail", HORNTAIL_IPV4), + AAAA("horntail", HORNTAIL_IPV6), + // A("backup", HORNTAIL_IPV4), + // AAAA("backup", HORNTAIL_IPV6), + // A("planet", HORNTAIL_IPV4), + // AAAA("planet", HORNTAIL_IPV6), + A("horntail.dub", HORNTAIL_INTERNAL), + A("horntail.oob", HORNTAIL_OOB), + + // Database servers + + A("snap-01.ams", SNAP01_INTERNAL), + A("snap-01.oob", SNAP01_OOB), + + A("snap-02.ucl", SNAP02_INTERNAL), + A("snap-02.oob", SNAP02_OOB), + + A("snap-03.dub", SNAP03_INTERNAL), + A("snap-03.oob", SNAP03_OOB), + + A("karm.ams", KARM_INTERNAL), + A("karm.oob", KARM_OOB), + + A("eddie.ucl", EDDIE_INTERNAL), + A("eddie.oob", EDDIE_OOB), + + // Development server with wildcard alias for user sites + + A("faffy", FAFFY_IPV4), + AAAA("faffy", FAFFY_IPV6), + A("dev", FAFFY_IPV4), + AAAA("dev", FAFFY_IPV6), + A("*.dev", FAFFY_IPV4), + AAAA("*.dev", FAFFY_IPV6), + A("ooc", FAFFY_IPV4), + AAAA("ooc", FAFFY_IPV6), + A("a.ooc", FAFFY_IPV4), + AAAA("a.ooc", FAFFY_IPV6), + A("b.ooc", FAFFY_IPV4), + AAAA("b.ooc", FAFFY_IPV6), + A("c.ooc", FAFFY_IPV4), + AAAA("c.ooc", FAFFY_IPV6), + A("npe", FAFFY_IPV4), + AAAA("npe", FAFFY_IPV6), + A("faffy.ams", FAFFY_INTERNAL), + A("faffy.oob", FAFFY_OOB), + + // Foundation server + + A("ridley", RIDLEY_IPV4), + A("blog", RIDLEY_IPV4), + A("foundation", RIDLEY_IPV4), + A("ridley.ucl", RIDLEY_INTERNAL), + A("ridley.oob", RIDLEY_OOB), + + A("staging.blog", FUME_IPV4), + AAAA("staging.blog", FUME_IPV6), + A("birthday20", FUME_IPV4), + AAAA("birthday20", FUME_IPV6), + + // Matomo server + + A("smaug", SMAUG_IPV4), + AAAA("smaug", SMAUG_IPV6), + A("matomo", SMAUG_IPV4), + AAAA("matomo", SMAUG_IPV6), + A("piwik", SMAUG_IPV4), + AAAA("piwik", SMAUG_IPV6), + A("smaug.dub", SMAUG_INTERNAL), + A("smaug.oob", SMAUG_OOB), + + // Imagery servers + + A("kessie", KESSIE_IPV4), + AAAA("kessie", KESSIE_IPV6), + A("agri", KESSIE_IPV4), + AAAA("agri", KESSIE_IPV6), + A("a.agri", KESSIE_IPV4), + AAAA("a.agri", KESSIE_IPV6), + A("b.agri", KESSIE_IPV4), + AAAA("b.agri", KESSIE_IPV6), + A("c.agri", KESSIE_IPV4), + AAAA("c.agri", KESSIE_IPV6), + A("os", KESSIE_IPV4), + AAAA("os", KESSIE_IPV6), + A("a.os", KESSIE_IPV4), + AAAA("a.os", KESSIE_IPV6), + A("b.os", KESSIE_IPV4), + AAAA("b.os", KESSIE_IPV6), + A("c.os", KESSIE_IPV4), + AAAA("c.os", KESSIE_IPV6), + A("kessie.oob", KESSIE_OOB), + + // Prometheus server and munin redirect + + A("stormfly-03", STORMFLY03_IPV4), + AAAA("stormfly-03", STORMFLY03_IPV6), + A("prometheus", STORMFLY03_IPV4), + AAAA("prometheus", STORMFLY03_IPV6), + A("munin", STORMFLY03_IPV4), + AAAA("munin", STORMFLY03_IPV6), + A("stormfly-03.oob", STORMFLY03_OOB), + + // Management server + + A("idris", IDRIS_IPV4), + AAAA("idris", IDRIS_IPV6), + A("acme", IDRIS_IPV4), + AAAA("acme", IDRIS_IPV6), + A("chef", IDRIS_IPV4), + AAAA("chef", IDRIS_IPV6), + A("dns", IDRIS_IPV4), + AAAA("dns", IDRIS_IPV6), + A("git", IDRIS_IPV4), + AAAA("git", IDRIS_IPV6), + A("hardware", IDRIS_IPV4), + AAAA("hardware", IDRIS_IPV6), + A("idris.dub", IDRIS_INTERNAL), + A("idris.oob", IDRIS_OOB), + + // KVMs + + A("kvm1.ucl", KVM1_INTERNAL), + + // Managed network switches + + A("switch1.ams", SWITCH1AMS_IPV4), + AAAA("switch1.ams", SWITCH1AMS_IPV6), + + A("switch1.dub", SWITCH1DUB_IPV4), + AAAA("switch1.dub", SWITCH1DUB_IPV6), + + // Managed power strips + + A("pdu1.ams", PDU1AMS_INTERNAL), + A("pdu2.ams", PDU2AMS_INTERNAL), + + A("pdu1.dub", PDU1DUB_INTERNAL), + A("pdu2.dub", PDU2DUB_INTERNAL), + + // Out of band access servers + + A("oob1.ams", OOB1AMS_INTERNAL), + + A("oob1.dub", OOB1DUB_INTERNAL), + + // Bytemark machine, and the services which operate from it + + A("shenron", SHENRON_IPV4), + AAAA("shenron", SHENRON_IPV6), + A("lists", SHENRON_IPV4), + AAAA("lists", SHENRON_IPV6), + A("help", SHENRON_IPV4), + AAAA("help", SHENRON_IPV6), + + // Naga service + + A("naga", NAGA_IPV4), + AAAA("naga", NAGA_IPV6), + A("svn", NAGA_IPV4), + AAAA("svn", NAGA_IPV6), + A("trac", NAGA_IPV4), + AAAA("trac", NAGA_IPV6), + A("irc", NAGA_IPV4), + AAAA("irc", NAGA_IPV6), + A("blogs", NAGA_IPV4), + AAAA("blogs", NAGA_IPV6), + A("welcome", NAGA_IPV4), + AAAA("welcome", NAGA_IPV6), + A("operations", NAGA_IPV4), + AAAA("operations", NAGA_IPV6), + A("hot", NAGA_IPV4), + AAAA("hot", NAGA_IPV6), + A("dmca", NAGA_IPV4), + AAAA("dmca", NAGA_IPV6), + A("otrs", NAGA_IPV4), + AAAA("otrs", NAGA_IPV6), + + A("naga.dub", NAGA_INTERNAL), + A("naga.oob", NAGA_OOB), + + // Wiki servers + + A("konqi", KONQI_IPV4), + AAAA("konqi", KONQI_IPV6), + A("wiki", KONQI_IPV4), + AAAA("wiki", KONQI_IPV6), + A("konqi.dub", KONQI_INTERNAL), + A("konqi.oob", KONQI_OOB), + + // Overpass server + + A("grisu", GRISU_IPV4), + AAAA("grisu", GRISU_IPV6), + A("query", GRISU_IPV4), + AAAA("query", GRISU_IPV6), + A("grisu.dub", GRISU_INTERNAL), + A("grisu.oob", GRISU_OOB), + + // GPS tile server + + A("muirdris", MUIRDRIS_IPV4), + AAAA("muirdris", MUIRDRIS_IPV6), + A("gps-tile", MUIRDRIS_IPV4), + AAAA("gps-tile", MUIRDRIS_IPV6), + A("a.gps-tile", MUIRDRIS_IPV4), + AAAA("a.gps-tile", MUIRDRIS_IPV6), + A("b.gps-tile", MUIRDRIS_IPV4), + AAAA("b.gps-tile", MUIRDRIS_IPV6), + A("c.gps-tile", MUIRDRIS_IPV4), + AAAA("c.gps-tile", MUIRDRIS_IPV6), + A("gps.tile", MUIRDRIS_IPV4), + AAAA("gps.tile", MUIRDRIS_IPV6), + A("gps-a.tile", MUIRDRIS_IPV4), + AAAA("gps-a.tile", MUIRDRIS_IPV6), + A("gps-b.tile", MUIRDRIS_IPV4), + AAAA("gps-b.tile", MUIRDRIS_IPV6), + A("gps-c.tile", MUIRDRIS_IPV4), + AAAA("gps-c.tile", MUIRDRIS_IPV6), + A("muirdris.dub", MUIRDRIS_INTERNAL), + A("muirdris.oob", MUIRDRIS_OOB), + + // Tile cache servers + + A("ridgeback", RIDGEBACK_IPV4), + A("ridgeback.oob", RIDGEBACK_OOB), + A("angor", ANGOR_IPV4), + AAAA("angor", ANGOR_IPV6), + A("ladon", LADON_IPV4), + AAAA("ladon", LADON_IPV6), + A("ascalon", ASCALON_IPV4), + A("neak", NEAK_IPV4), + A("meraxes", MERAXES_IPV4), + AAAA("meraxes", MERAXES_IPV6), + + // Discourse server ("community") + + A("jakelong", JAKELONG_IPV4), + AAAA("jakelong", JAKELONG_IPV6), + A("community", JAKELONG_IPV4), + A("communities", JAKELONG_IPV4), + A("c", JAKELONG_IPV4), + AAAA("community", JAKELONG_IPV6), + AAAA("communities", JAKELONG_IPV6), + AAAA("c", JAKELONG_IPV6), + CNAME("community-cdn", "dualstack.n.sni.global.fastly.net."), + TXT("community", "google-site-verification=hQ8GZyj4KwnPqAX2oAzpbLrh6I5dfR08PSdL3icVkfg"), + A("forum", JAKELONG_IPV4), + AAAA("forum", JAKELONG_IPV6), + A("jakelong.dub", JAKELONG_INTERNAL), + A("jakelong.oob", JAKELONG_OOB), + + // Donation site and new OSMF crm site + + A("donate", RIDLEY_IPV4), + A("support", RIDLEY_IPV4), + A("supporting", RIDLEY_IPV4), + + // Spare servers + + A("fume", FUME_IPV4), + AAAA("fume", FUME_IPV6), + A("fume.dub", FUME_INTERNAL), + A("fume.oob", FUME_OOB), + + // Uptime site at StatusCake + + CNAME("uptime", "uptimessl-new.statuscake.com."), + + // Dynamic DNS records + + DYNAMIC_RECORDS + +); diff --git a/src/osm-li.js b/src/osm-li.js new file mode 100644 index 0000000..e8f0f7b --- /dev/null +++ b/src/osm-li.js @@ -0,0 +1,9 @@ +D(DOMAIN, REGISTRAR, + + NAMESERVER("nalps.sosm.ch."), + NAMESERVER("palpuogna.sosm.ch."), + NAMESERVER("ns.poole.ch."), + NAMESERVER("he.poole.ch."), + NAMESERVER("ns3.spreng.ch.") + +); diff --git a/src/osm-wiki.js b/src/osm-wiki.js new file mode 100644 index 0000000..c93c810 --- /dev/null +++ b/src/osm-wiki.js @@ -0,0 +1,77 @@ +D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER), + + // Publish CAA records indicating that only letsencrypt and globalsign (Fastly) should issue certificates + + CAA_BUILDER({ + label: "@", + ttl: "1h", + iodef: "mailto:hostmaster@openstreetmap.org", + issue: [ + "letsencrypt.org", + "globalsign.com", // Used by Fastly for CDN certificates + ], + issuewild: [ + "letsencrypt.org", + "globalsign.com", // Used by Fastly for CDN certificates + ], + }), + + // Mail service + + MX("@", 10, QUALIFY("a.mx")), + + A("a.mx", FAFNIR_IPV4), + AAAA("a.mx", FAFNIR_IPV6), + A("mail", FAFNIR_IPV4), + AAAA("mail", FAFNIR_IPV6), + A("mta-sts", FAFNIR_IPV4), + AAAA("mta-sts", FAFNIR_IPV6), + + // Publish SPF records indicating that only shenron sends mail + + SPF_BUILDER({ + label: "@", + parts: [ + "v=spf1", + "ip4:212.110.172.32", // shenron ipv4 + "ip6:2001:41c9:1:400::32", // shenron ipv6 + "ip4:184.104.226.98", // fafnir ipv4 + "ip6:2001:470:1:b3b::2", // fafnir ipv6 + "ip4:193.60.236.0/24", // ucl external + "ip4:184.104.179.128/27", // amsterdam external + "ip6:2001:470:1:fa1::/64", // amsterdam external + "ip4:184.104.226.96/27", // dublin external + "ip6:2001:470:1:b3b::/64", // dublin external + "mx", // safety net if we change mx + "-all" + ] + }), + + // Publish DMARC report-only policy + + DMARC_BUILDER({ + policy: "none", + rua: [ + "mailto:openstreetmap-d@dmarc.report-uri.com" + ], + failureOptions: 1 + }), + + // Announce MTA-STS policy and TLSRPT policy for error reports + + TXT("_mta-sts", "v=STSv1; id=202001291805Z"), + TXT("_smtp._tls", "v=TLSRPTv1; rua=mailto:openstreetmap-d@tlsrpt.report-uri.com"), + + // Fastly cert domain ownership confirmation + + TXT("@", "_globalsign-domain-verification=ps00GlW1BzY9c2_cwH_pFqRkvzZyaCVZ-3RLssRG6S"), + TXT("@", "_globalsign-domain-verification=W0buKB5ZmL-VwwHw2oQyQImk3I1q3hSemf2qmB1hjP"), + + A("wiki", KONQI_IPV4), + AAAA("wiki", KONQI_IPV6), + A("www", KONQI_IPV4), + AAAA("www", KONQI_IPV6), + A("@", KONQI_IPV4), + AAAA("@", KONQI_IPV6) + +); \ No newline at end of file diff --git a/src/osm2pgsql.js b/src/osm2pgsql.js new file mode 100644 index 0000000..e7cb962 --- /dev/null +++ b/src/osm2pgsql.js @@ -0,0 +1,26 @@ +D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER), + + // Publish CAA records indicating that only letsencrypt should issue certificates + + CAA_BUILDER({ + label: "@", + iodef: "mailto:hostmaster@openstreetmap.org", + issue: [ + "letsencrypt.org", + ], + issuewild: [ + "letsencrypt.org", + ], + }), + + // Main web server and it's aliases + + A("@", "138.201.190.130"), + AAAA("@", "2a01:4f8:1c17:6433::2"), + A("www", "138.201.190.130"), + AAAA("www", "2a01:4f8:1c17:6433::2"), + + // Test server for osm2pgsql development + A("test", "135.181.221.216") + +); diff --git a/src/osmfoundation b/src/osmfoundation deleted file mode 100644 index 8b4a927..0000000 --- a/src/osmfoundation +++ /dev/null @@ -1,64 +0,0 @@ -# tinydns data for osmfoundation -# -# Full reference is at http://cr.yp.to/djbdns/tinydns-data.html - -# Let Bytemark handle the DNS - -.osmfoundation::a.ns.bytemark.co.uk -.osmfoundation::b.ns.bytemark.co.uk -.osmfoundation::c.ns.bytemark.co.uk - -# Publish a CAA record indicating that only letsencrypt should issue certificates - -:osmfoundation:257:\000\005\151\163\163\165\145\154\145\164\163\145\156\143\162\171\160\164\056\157\162\147 - -# SPF Record - -'osmfoundation:v=spf1 a\072shenron.openstreetmap.org include\072_spf.google.com ~all:3600 - -# Let google handle email - -@osmfoundation::aspmx.l.google.com:1:3600 -@osmfoundation::alt1.aspmx.l.google.com:5:3600 -@osmfoundation::alt2.aspmx.l.google.com:5:3600 -@osmfoundation::alt3.aspmx.l.google.com:10:3600 -@osmfoundation::alt4.aspmx.l.google.com:10:3600 - -# Handle mail for the crm subdomain ourselves - -@crm.osmfoundation::a.mx.openstreetmap.org:10 - -# Add DKIM public key -# Use : raw to workaround TXT split issue - -:google._domainkey.osmfoundation:16:\352v=DKIM1;\040k=rsa;\040p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCJmTBAkYRCocCCNtVsdRNMlQel8kNfjPYJpjEm7woEgZh9yZeDzxImtz+u73oUF4+7bXzrNYbP946WNQIwAba1J69he8L1qfPBJLd3Z\057fgmuaGdWcxpDno2EY4cQ8PrzvI6Vfm+6YAFANl8w09CIg41ykdlzH4iUJXD35k3SIl3wIDAQAB:900 - -# Add XMPP chat servers for compatibility - -:_xmpp-server._tcp.osmfoundation:33:\000\005\000\000\024\225\013xmpp-server\001l\006google\003com\000 -:_xmpp-server._tcp.osmfoundation:33:\000\024\000\000\024\225\014xmpp-server1\001l\006google\003com\000 -:_xmpp-server._tcp.osmfoundation:33:\000\024\000\000\024\225\014xmpp-server2\001l\006google\003com\000 -:_xmpp-server._tcp.osmfoundation:33:\000\024\000\000\024\225\014xmpp-server3\001l\006google\003com\000 -:_xmpp-server._tcp.osmfoundation:33:\000\024\000\000\024\225\014xmpp-server4\001l\006google\003com\000 - -# Aliases for google services - -Clogin.osmfoundation:ghs.google.com -Cdocs.osmfoundation:ghs.google.com -Cmail.osmfoundation:ghs.google.com -Ccalendar.osmfoundation:ghs.google.com -Csites.osmfoundation:ghs.google.com - -# Main web server and it's aliases - -+osmfoundation:193.60.236.19:600 -+old.osmfoundation:193.60.236.19:600 -+www.osmfoundation:193.60.236.19:600 -+wiki.osmfoundation:193.60.236.19:600 -+blog.osmfoundation:193.60.236.19:600 -+crm.osmfoundation:193.60.236.19:600 -+join.osmfoundation:193.60.236.19:600 -+board.osmfoundation:193.60.236.19:600 -+dwg.osmfoundation:193.60.236.19:600 -+mwg.osmfoundation:193.60.236.19:600 -+operations.osmfoundation:193.60.236.19:600 diff --git a/src/osmfoundation.js b/src/osmfoundation.js new file mode 100644 index 0000000..f36b23a --- /dev/null +++ b/src/osmfoundation.js @@ -0,0 +1,134 @@ +D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER), + + // Publish CAA records indicating that only letsencrypt should issue certificates + + CAA_BUILDER({ + label: "@", + iodef: "mailto:hostmaster@openstreetmap.org", + issue: [ + "letsencrypt.org", + ], + issuewild: [ + "letsencrypt.org", + ], + }), + + // Let mailbox.org handle email + + MX("@", 10, "mxext1.mailbox.org."), + MX("@", 10, "mxext2.mailbox.org."), + MX("@", 20, "mxext3.mailbox.org."), + + // Handle mail for the join subdomain ourselves + + MX("join", 10, "a.mx.openstreetmap.org."), + + // SPF policy + + SPF_BUILDER({ + label: "@", + parts: [ + "v=spf1", + "include:mailbox.org", // mailbox.org + "include:_spf.google.com", // Google GSuite + "ip4:212.110.172.32", // shenron ipv4 + "ip6:2001:41c9:1:400::32", // shenron ipv6 + "ip4:184.104.226.98", // fafnir ipv4 + "ip6:2001:470:1:b3b::2", // fafnir ipv6 + "ip4:193.60.236.0/24", // ucl external + "ip4:184.104.179.128/27", // amsterdam external + "ip6:2001:470:1:fa1::/64", // amsterdam external + "ip4:184.104.226.96/27", // dublin external + "ip6:2001:470:1:b3b::/64", // dublin external + "-all" + ] + }), + + SPF_BUILDER({ + label: "wiki", + parts: [ + "v=spf1", + "ip4:184.104.226.98", // fafnir ipv4 + "ip6:2001:470:1:b3b::2", // fafnir ipv6 + "ip4:193.60.236.0/24", // ucl external + "ip4:184.104.179.128/27", // amsterdam external + "ip6:2001:470:1:fa1::/64", // amsterdam external + "ip4:184.104.226.96/27", // dublin external + "ip6:2001:470:1:b3b::/64", // dublin external + "-all" + ] + }), + + // Apple Business Manager verification + TXT("@", "apple-domain-verification=ZzBG2msRtUDehTMW"), + + // Mailbox.org registration verification + TXT("d00f46a3fde45d06c53f3cd5b21f213ea384e7f5", "4a229bebe41606a1f7d909507846729a73998c31"), + + // Publish DMARC report-only policy + + DMARC_BUILDER({ + policy: "none", + rua: [ + "mailto:openstreetmap-d@dmarc.report-uri.com" + ], + failureOptions: 1 + }), + + // DKIM keys + + TXT("google._domainkey", "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCJmTBAkYRCocCCNtVsdRNMlQel8kNfjPYJpjEm7woEgZh9yZeDzxImtz+u73oUF4+7bXzrNYbP946WNQIwAba1J69he8L1qfPBJLd3Z/fgmuaGdWcxpDno2EY4cQ8PrzvI6Vfm+6YAFANl8w09CIg41ykdlzH4iUJXD35k3SIl3wIDAQAB"), + TXT("20201112._domainkey", "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz4OyJc77mpW5djxVfZm18HcmJHQLpo7B2Z8Og8byICjDiG91Tpkv5ws3xIbMsi/tVA6p5L76uL0TGKlo4ayewYvJUTC22+hBWARUuWA0DgeMwBpW/dNUOJHBABCTouolvXLKRTPTefA177Y5jYbD7ZeJAR4ZnFbZX6spimXCT66AyhqCBSrOCXYXFm3ons5ANkkQBNZ/jMYczYs9T1ijNEbBNTJmLO+whOrYLyGd3iZ9X9iOmuNFBCgXp0tsN//FBsOyTl559/XY25r3GZhiKXMbrZ1IJewqJlG0+hN1y9qwWGgq5YpZPt5YJ1KGjIrcFX59/PhNQX4khPOaD5g7ZQIDAQAB", AUTOSPLIT), + + // https://kb.mailbox.org/en/private/custom-domains/spf-dkim-and-dmarc-how-to-improve-spam-reputation-and-avoid-bounces + CNAME("MBO0001._domainkey", "MBO0001._domainkey.mailbox.org."), + CNAME("MBO0002._domainkey", "MBO0002._domainkey.mailbox.org."), + CNAME("MBO0003._domainkey", "MBO0003._domainkey.mailbox.org."), + CNAME("MBO0004._domainkey", "MBO0004._domainkey.mailbox.org."), + + // Google postmaster tools verification + + CNAME("uaqn4jv2xaoe", "gv-jun5dginqysxph.dv.googlehosted.com."), + + // Aliases for google services + + CNAME("login", "ghs.googlehosted.com."), + CNAME("docs", "ghs.googlehosted.com."), + CNAME("mail", "ghs.googlehosted.com."), + CNAME("calendar", "ghs.googlehosted.com."), + CNAME("sites", "ghs.googlehosted.com."), + + // Aliases for mailbox.org services + + CNAME("autoconfig", "mailbox.org."), + SRV("_hkps._tcp", 1, 1, 443, "pgp.mailbox.org."), + + // Main web server and it's aliases + + A("@", RIDLEY_IPV4), + A("www", RIDLEY_IPV4), + A("wiki", RIDLEY_IPV4), + A("blog", RIDLEY_IPV4), + + A("staging.blog", FUME_IPV4), + AAAA("staging.blog", FUME_IPV6), + + A("crm", RIDLEY_IPV4), + A("join", RIDLEY_IPV4), + A("support", RIDLEY_IPV4), + A("supporting", RIDLEY_IPV4), + A("donate", RIDLEY_IPV4), + + A("board", RIDLEY_IPV4), + A("dwg", RIDLEY_IPV4), + A("mwg", RIDLEY_IPV4), + A("operations", NAGA_IPV4), + AAAA("operations", NAGA_IPV6), + + // Nextcloud instance + + CNAME("files", "nextcloud-openstreetmapfoundation.cloud68.systems."), + + A("hardware", IDRIS_IPV4) + +); diff --git a/src/ptr_equinix_ams_ipv4.js b/src/ptr_equinix_ams_ipv4.js new file mode 100644 index 0000000..46e0704 --- /dev/null +++ b/src/ptr_equinix_ams_ipv4.js @@ -0,0 +1,14 @@ +// http://www.he.net/adm/reverse.dns.html (RFC4183 notation) +D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER), + PTR(DRIBBLE_IPV4.split(".").pop(), "dribble.openstreetmap.org."), + PTR(DULCY_IPV4.split(".").pop(), "dulcy.openstreetmap.org."), + PTR(FAFFY_IPV4.split(".").pop(), "faffy.openstreetmap.org."), + PTR(IRONBELLY_IPV4.split(".").pop(), "ironbelly.openstreetmap.org."), + PTR(NORBERT_IPV4.split(".").pop(), "norbert.openstreetmap.org."), + PTR(ODIN_IPV4.split(".").pop(), "odin.openstreetmap.org."), + PTR(SPIKE06_IPV4.split(".").pop(), "spike-06.openstreetmap.org."), + PTR(SPIKE07_IPV4.split(".").pop(), "spike-07.openstreetmap.org."), + PTR(SPIKE08_IPV4.split(".").pop(), "spike-08.openstreetmap.org."), + PTR(VHAGAR_IPV4.split(".").pop(), "vhagar.openstreetmap.org."), + PTR(SWITCH1AMS_IPV4.split(".").pop(), "switch1.ams.openstreetmap.org.") +); diff --git a/src/ptr_equinix_ams_ipv6.js b/src/ptr_equinix_ams_ipv6.js new file mode 100644 index 0000000..c670fb0 --- /dev/null +++ b/src/ptr_equinix_ams_ipv6.js @@ -0,0 +1,13 @@ +D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER), + PTR(DRIBBLE_IPV6, "dribble.openstreetmap.org."), + PTR(DULCY_IPV6, "dulcy.openstreetmap.org."), + PTR(FAFFY_IPV6, "faffy.openstreetmap.org."), + PTR(IRONBELLY_IPV6, "ironbelly.openstreetmap.org."), + PTR(NORBERT_IPV6, "norbert.openstreetmap.org."), + PTR(ODIN_IPV6, "odin.openstreetmap.org."), + PTR(SPIKE06_IPV6, "spike-06.openstreetmap.org."), + PTR(SPIKE07_IPV6, "spike-07.openstreetmap.org."), + PTR(SPIKE08_IPV6, "spike-08.openstreetmap.org."), + PTR(VHAGAR_IPV6, "vhagar.openstreetmap.org."), + PTR(SWITCH1AMS_IPV6, "switch1.ams.openstreetmap.org.") +); diff --git a/src/ptr_equinix_dub_ipv4.js b/src/ptr_equinix_dub_ipv4.js new file mode 100644 index 0000000..66cee26 --- /dev/null +++ b/src/ptr_equinix_dub_ipv4.js @@ -0,0 +1,17 @@ +// http://www.he.net/adm/reverse.dns.html (RFC4183 notation) +D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER), + PTR(CULEBRE_IPV4.split(".").pop(), "culebre.openstreetmap.org."), + PTR(FAFNIR_IPV4.split(".").pop(), "fafnir.openstreetmap.org."), + PTR(HORNTAIL_IPV4.split(".").pop(), "horntail.openstreetmap.org."), + PTR(IDRIS_IPV4.split(".").pop(), "idris.openstreetmap.org."), + PTR(JAKELONG_IPV4.split(".").pop(), "jakelong.openstreetmap.org."), + PTR(KONQI_IPV4.split(".").pop(), "konqi.openstreetmap.org."), + PTR(LONGMA_IPV4.split(".").pop(), "longma.openstreetmap.org."), + PTR(MUIRDRIS_IPV4.split(".").pop(), "muirdris.openstreetmap.org."), + PTR(NAGA_IPV4.split(".").pop(), "naga.openstreetmap.org."), + PTR(SMAUG_IPV4.split(".").pop(), "smaug.openstreetmap.org."), + PTR(SPIKE01_IPV4.split(".").pop(), "spike-01.openstreetmap.org."), + PTR(SPIKE02_IPV4.split(".").pop(), "spike-02.openstreetmap.org."), + PTR(SPIKE03_IPV4.split(".").pop(), "spike-03.openstreetmap.org."), + PTR(SWITCH1DUB_IPV4.split(".").pop(), "switch1.dub.openstreetmap.org.") +); diff --git a/src/ptr_equinix_dub_ipv6.js b/src/ptr_equinix_dub_ipv6.js new file mode 100644 index 0000000..2bf34f8 --- /dev/null +++ b/src/ptr_equinix_dub_ipv6.js @@ -0,0 +1,16 @@ +D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER), + PTR(CULEBRE_IPV6, "culebre.openstreetmap.org."), + PTR(FAFNIR_IPV6, "fafnir.openstreetmap.org."), + PTR(HORNTAIL_IPV6, "horntail.openstreetmap.org."), + PTR(IDRIS_IPV6, "idris.openstreetmap.org."), + PTR(JAKELONG_IPV6, "jakelong.openstreetmap.org."), + PTR(KONQI_IPV6, "konqi.openstreetmap.org."), + PTR(LONGMA_IPV6, "longma.openstreetmap.org."), + PTR(MUIRDRIS_IPV6.split(".").pop(), "muirdris.openstreetmap.org."), + PTR(NAGA_IPV6, "naga.openstreetmap.org."), + PTR(SMAUG_IPV6.split(".").pop(), "smaug.openstreetmap.org."), + PTR(SPIKE01_IPV6, "spike-01.openstreetmap.org."), + PTR(SPIKE02_IPV6, "spike-02.openstreetmap.org."), + PTR(SPIKE03_IPV6, "spike-03.openstreetmap.org."), + PTR(SWITCH1DUB_IPV6, "switch1.dub.openstreetmap.org.") +); diff --git a/src/render.openstreetmap b/src/render.openstreetmap deleted file mode 100644 index c6ae231..0000000 --- a/src/render.openstreetmap +++ /dev/null @@ -1,100 +0,0 @@ -bowser: - lat: -37.8001 - lon: 144.9671 - statuscake: - - 2217312 - colour: "#bfa730" - bandwidth: 300 - ipv4: 138.44.68.106 - default: "" - preferred: - origins: - - hamilton - - hsinchu - - wellington - -odin: - lat: 52.33724625 - lon: 4.93370796776345 - statuscake: - - 3987453 - colour: "#7c1f7c" - bandwidth: 800 - ipv4: 130.117.76.15 - ipv6: 200109780002002c000000000172000F - default: "" - preferred: - origins: - - amsterdam - -yevaud: - lat: 51.5228002 - lon: -0.62151043832233 - statuscake: - - 2217313 - colour: "#412c84" - bandwidth: 300 - ipv4: 193.60.236.22 - default: "" - preferred: - origins: - - london - -scorch: - lat: 50.6911904 - lon: 3.2008282044777 - statuscake: - - 2217314 - colour: "#bf8230" - bandwidth: 400 - ipv4: 176.31.235.79 - ipv6: 200141d00002fc4f0000000000000001 - default: "" - preferred: - origins: - - france - -rhaegal: - lat: 45.8082123 - lon: 15.9634238 - statuscake: - - 3343399 - colour: "#a1b92e" - bandwidth: 500 - ipv4: 161.53.248.77 - default: "" - preferred: - origins: - - osijek - - pula - -pyrene: - lat: 44.5639267 - lon: -123.274707837676 - statuscake: - - 3451753 - colour: "#269926" - bandwidth: 600 - ipv4: 140.211.167.98 - ipv6: 2605bc8030100700000000008cd3a762 - default: "" - preferred: - origins: - - corvallis - - curitiba - - montreal - - sanfrancisco - - vinadelmar - -# Spare colours: -# -# 25567b -# bf6530 -# bfb830 -# 562781 -# 1f7c65 -# bf3030 -# bf9430 -# 7ab02c -# a1285f -# 2c3d82 diff --git a/src/stateofthemap b/src/stateofthemap deleted file mode 100644 index 66f9e62..0000000 --- a/src/stateofthemap +++ /dev/null @@ -1,42 +0,0 @@ -# tinydns data for stateofthemap -# -# Full reference is at http://cr.yp.to/djbdns/tinydns-data.html - -# Let Bytemark handle the DNS - -.stateofthemap::a.ns.bytemark.co.uk -.stateofthemap::b.ns.bytemark.co.uk -.stateofthemap::c.ns.bytemark.co.uk - -# Publish a CAA record indicating that only letsencrypt should issue certificates - -:stateofthemap:257:\000\005\151\163\163\165\145\154\145\164\163\145\156\143\162\171\160\164\056\157\162\147 - -# Let google handle email - -@stateofthemap::aspmx.l.google.com:1:3600 -@stateofthemap::alt1.aspmx.l.google.com:5:3600 -@stateofthemap::alt2.aspmx.l.google.com:5:3600 -@stateofthemap::aspmx2.googlemail.com:10:3600 -@stateofthemap::aspmx3.googlemail.com:10:3600 - -# Alias for login - -Clogin.stateofthemap:ghs.google.com - -# Main web server and it's aliases - -+stateofthemap:193.60.236.19:600 -+www.stateofthemap:193.60.236.19:600 -+2019.stateofthemap:193.60.236.19:600 -+2018.stateofthemap:193.60.236.19:600 -+2017.stateofthemap:193.60.236.19:600 -+2016.stateofthemap:193.60.236.19:600 -+2014.stateofthemap:188.226.171.99 -+2013.stateofthemap:193.60.236.19:600 -+2012.stateofthemap:193.60.236.19:600 -+2011.stateofthemap:193.60.236.19:600 -+2010.stateofthemap:193.60.236.19:600 -+2009.stateofthemap:193.60.236.19:600 -+2008.stateofthemap:193.60.236.19:600 -+2007.stateofthemap:193.60.236.19:600 diff --git a/src/stateofthemap-eu b/src/stateofthemap-eu deleted file mode 100644 index 8bdf20d..0000000 --- a/src/stateofthemap-eu +++ /dev/null @@ -1,22 +0,0 @@ -# tinydns data for stateofthemap-eu -# -# Full reference is at http://cr.yp.to/djbdns/tinydns-data.html - -# Let Bytemark handle the DNS - -.stateofthemap-eu::a.ns.bytemark.co.uk -.stateofthemap-eu::b.ns.bytemark.co.uk -.stateofthemap-eu::c.ns.bytemark.co.uk - -# Publish a CAA record indicating that only letsencrypt should issue certificates - -:stateofthemap-eu:257:\000\005\151\163\163\165\145\154\145\164\163\145\156\143\162\171\160\164\056\157\162\147 - -# Let openstreetmap.at handle email for the moment - -@stateofthemap-eu::openstreetmap.at:1:3600 - -# Main web server and it's aliases - -+stateofthemap-eu:88.198.206.107:600 -+www.stateofthemap-eu:88.198.206.107:600 diff --git a/src/stateofthemap-eu.js b/src/stateofthemap-eu.js new file mode 100644 index 0000000..14776b1 --- /dev/null +++ b/src/stateofthemap-eu.js @@ -0,0 +1,33 @@ +D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER), + + // Publish CAA records indicating that only letsencrypt should issue certificates + + CAA_BUILDER({ + label: "@", + iodef: "mailto:hostmaster@openstreetmap.org", + issue: [ + "letsencrypt.org", + ], + issuewild: [ + "letsencrypt.org", + ], + }), + + // Block email delivery + + TXT("_dmarc", "v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s;"), + TXT("*._domainkey", "v=DKIM1; p="), + TXT("@", "v=spf1 -all"), + + // Site hosted on github pages + + ALIAS("@", "openstreetmap-polska.github.io."), + CNAME("www", "openstreetmap-polska.github.io."), + + // Previous editions + + A("2014", "49.12.5.171"), + CNAME("2023", "osmbe.github.io."), + CNAME("2024", "openstreetmap-polska.github.io.") + +); diff --git a/src/stateofthemap.js b/src/stateofthemap.js new file mode 100644 index 0000000..a54d5c0 --- /dev/null +++ b/src/stateofthemap.js @@ -0,0 +1,82 @@ +D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER), + + // Publish CAA records indicating that only letsencrypt should issue certificates + + CAA_BUILDER({ + label: "@", + iodef: "mailto:hostmaster@openstreetmap.org", + issue: [ + "letsencrypt.org", + ], + issuewild: [ + "letsencrypt.org", + ], + }), + + // SPF policy + + SPF_BUILDER({ + label: "@", + parts: [ + "v=spf1", + "include:_spf.google.com", // Google GSuite + "ip4:212.110.172.32", // shenron ipv4 + "ip6:2001:41c9:1:400::32", // shenron ipv6 + "ip4:184.104.226.98", // fafnir ipv4 + "ip6:2001:470:1:b3b::2", // fafnir ipv6 + "-all" + ] + }), + + // Let google handle email + + MX("@", 1, "aspmx.l.google.com."), + MX("@", 5, "alt1.aspmx.l.google.com."), + MX("@", 5, "alt2.aspmx.l.google.com."), + MX("@", 10, "alt3.aspmx.l.google.com."), + MX("@", 10, "alt4.aspmx.l.google.com."), + + // Aliases for google services + + CNAME("login", "ghs.googlehosted.com."), + CNAME("docs", "ghs.googlehosted.com."), + CNAME("mail", "ghs.googlehosted.com."), + CNAME("calendar", "ghs.googlehosted.com."), + CNAME("sites", "ghs.googlehosted.com."), + + // Main web server and it's aliases + + A("@", NAGA_IPV4), + AAAA("@", NAGA_IPV6), + A("www", NAGA_IPV4), + AAAA("www", NAGA_IPV6), + A("2024", NAGA_IPV4), + AAAA("2024", NAGA_IPV6), + A("2022", NAGA_IPV4), + AAAA("2022", NAGA_IPV6), + A("2021", NAGA_IPV4), + AAAA("2021", NAGA_IPV6), + A("2020", NAGA_IPV4), + AAAA("2020", NAGA_IPV6), + A("2019", NAGA_IPV4), + AAAA("2019", NAGA_IPV6), + A("2018", NAGA_IPV4), + AAAA("2018", NAGA_IPV6), + A("2017", NAGA_IPV4), + AAAA("2017", NAGA_IPV6), + A("2016", NAGA_IPV4), + AAAA("2016", NAGA_IPV6), + A("2013", NAGA_IPV4), + AAAA("2013", NAGA_IPV6), + A("2012", RIDLEY_IPV4), + A("2011", RIDLEY_IPV4), + A("2010", RIDLEY_IPV4), + A("2009", RIDLEY_IPV4), + A("2008", RIDLEY_IPV4), + A("2007", RIDLEY_IPV4), + + // Google Site Verification - Grant + TXT("2022", "google-site-verification=wT1dJzSYM_2By372lJ_v9IU1crF21qOySEAPABxUcyo"), + TXT("@", "google-site-verification=pqJHZHtrC4UhevQdPlR_2gVDPml6UCwmyHq75bfWLRQ") + +); diff --git a/src/switch2osm b/src/switch2osm deleted file mode 100644 index 3195e79..0000000 --- a/src/switch2osm +++ /dev/null @@ -1,18 +0,0 @@ -# tinydns data for switch2osm -# -# Full reference is at http://cr.yp.to/djbdns/tinydns-data.html - -# Let Bytemark handle the DNS - -.switch2osm::a.ns.bytemark.co.uk -.switch2osm::b.ns.bytemark.co.uk -.switch2osm::c.ns.bytemark.co.uk - -# Publish a CAA record indicating that only letsencrypt should issue certificates - -:switch2osm:257:\000\005\151\163\163\165\145\154\145\164\163\145\156\143\162\171\160\164\056\157\162\147 - -# Main web server and it's aliases - -+switch2osm:193.60.236.19:600 -+www.switch2osm:193.60.236.19:600 diff --git a/src/switch2osm.js b/src/switch2osm.js new file mode 100644 index 0000000..e6763c7 --- /dev/null +++ b/src/switch2osm.js @@ -0,0 +1,34 @@ +D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER), + + // Publish CAA records indicating that only letsencrypt should issue certificates + + CAA_BUILDER({ + label: "@", + iodef: "mailto:hostmaster@openstreetmap.org", + issue: [ + "letsencrypt.org", + ], + issuewild: [ + "letsencrypt.org", + ], + }), + + // Delegate SPF policy to the main domain + + SPF_BUILDER({ + label: "@", + parts: [ + "v=spf1", + "include:openstreetmap.org", // main openstreetmap.org spf record + "-all" + ] + }), + + // Main web server and it's aliases + + A("@", NAGA_IPV4), + AAAA("@", NAGA_IPV6), + A("www", NAGA_IPV4), + AAAA("www", NAGA_IPV6) + +); diff --git a/src/tile.openstreetmap b/src/tile.openstreetmap deleted file mode 100644 index b422f7d..0000000 --- a/src/tile.openstreetmap +++ /dev/null @@ -1,510 +0,0 @@ -# Moscow, RU -# BW Limit: 1000Mb/s -moscow: - lat: 55.75 - lon: 37.617 - statuscake: - - 2217257 - - 2217258 - colour: "#8dd3c7" - bandwidth: 200 - ipv4: 5.45.248.21 - ipv6: 2a0206b8b0105065000000000000a001 - allowed: - countries: - - AZ - - BY - - EE - - GE - - KZ - - LT - - LV - - MN - continents: - - EU - denied: - countries: - - UA - preferred: - countries: - - RU - -# Amsterdam, NL -# BW Limit: 1000Mb/s -amsterdam: - lat: 52.37306 - lon: 4.89222 - statuscake: - - 2217259 - - 2217260 - colour: "#bebada" - bandwidth: 100 - ipv4: 134.90.146.26 - -# Oslo, NO -# BW Limit: 1000Mb/s -oslo: - lat: 59.94944 - lon: 10.75639 - statuscake: - - 2217261 - - 2217262 - colour: "#ffffb3" - bandwidth: 30 - ipv4: 31.169.50.10 - default: "xx" - -# San Francisco, US -# BW Limit: 100Mb/s ? -sanfrancisco: - lat: 37.708264 - lon: -122.280247 - statuscake: - - 2217263 - - 2217264 - colour: "#e31a1c" - bandwidth: 60 - ipv4: 71.19.155.177 - ipv6: 2605270000000017a80000fffe3ecdca - preferred: - countries: - - CN - -# Lyon/Toulouse/Rennes/Paris, FR -# Lyon @ 45.7575958,4.8323239 with BW limit of 100Mb/s -# Toulouse @ 43.6044622,1.4442469 -# Rennes @ 48.10891/-1.63459 -# Paris @ 48.8695940,2.3437840 -france: - lat: 46.603354 - lon: 1.8883335 - colour: "#fccde5" - servers: - - statuscake: - - 2217265 - - 2217266 - bandwidth: 100 - ipv4: 77.95.65.39 - ipv6: 2a039180000001000000000000000007 - - statuscake: - - 3351567 - - 3351569 - bandwidth: 100 - ipv4: 91.224.148.166 - ipv6: 2a0372208080a6000000000000000001 - - statuscake: - - 3743694 - - 3743696 - bandwidth: 100 - ipv4: 89.234.186.100 - ipv6: 2a005884821c00000000000000000001 - - statuscake: - - 3750719 - - 3750717 - bandwidth: 100 - ipv4: 80.67.167.77 - ipv6: 2a0bcbc0110d0001000000000000001c - - statuscake: - - 3794330 - - 3794331 - bandwidth: 100 - ipv4: 185.216.27.232 - preferred: - countries: - - FR - - MC - - RE - -# Falkenstein/Jena/Berlin, DE -# Falkenstein @ 50.47822,12.33607 -# Jena @ 50.9411,11.60085 -# Berlin @ -# Nuremberg @ 49.44927,11.01402 -germany: - lat: 51.0834196 - lon: 10.4234469 - colour: "#b2df8a" - servers: - - statuscake: - - 2217269 - - 2217270 - bandwidth: 150 - ipv4: 144.76.70.77 - ipv6: 2a0104f80191834c0000000000000002 - - statuscake: - - 2217271 - - 2217272 - bandwidth: 150 - ipv4: 81.7.11.83 - ipv6: 2a020180000100010000000005170b53 - - statuscake: - - 2217293 - - 2217294 - bandwidth: 150 - ipv4: 185.66.195.245 - ipv6: 2a032260200000010000000000000005 - - statuscake: - - 3750847 - - 3750842 - bandwidth: 150 - ipv4: 195.201.226.63 - ipv6: 2a0104f81c1cbc540000000000000001 - allowed: - countries: - - DE - -# Baku, AZ -# BW Limit: 1000Mb/s -baku: - lat: 40.395278 - lon: 49.882222 - colour: "#1f78b4" - statuscake: - - 2217267 - - 2217268 - bandwidth: 60 - ipv4: 94.20.20.55 - allowed: - continents: - - AS - - EU - preferred: - countries: - - AZ - denied: - countries: - - AM - - CN - - JP - - KR - - VN - -# Hsinchu, TW -hsinchu: - lat: 24.78268 - lon: 120.99563 - colour: "#33a02c" - statuscake: - - 2217277 - - 2217278 - bandwidth: 200 - ipv4: 140.110.240.7 - ipv6: 20010e10200002400000000000000007 - allowed: - continents: - - AS - preferred: - countries: - - TW - - JP - -# Pula, HR -pula: - lat: 44.866280 - lon: 13.851520 - statuscake: - - 2217279 - - 2217280 - colour: "#a6cee3" - bandwidth: 120 - ipv4: 193.198.233.211 - ipv6: 20010b684cff00030000000000000003 - default: "xx" - -# Osijek, HR -osijek: - lat: 45.55656 - lon: 18.71212 - statuscake: - - 2217281 - - 2217282 - colour: "#fb8072" - bandwidth: 120 - ipv4: 161.53.30.107 - ipv6: 20010b68c0ff000002215efffe40c7c4 - default: "xx" - -# London, GB -london: - lat: 51.5120484 - lon: -0.00201880060605929 - colour: "#ffed6f" - servers: - - statuscake: - - 2214077 - - 2217246 - bandwidth: 150 - ipv4: 185.73.44.30 - ipv6: 20010ba800002c1e0000000000000000 - - statuscake: - - 4089249 - - 4089250 - bandwidth: 150 - ipv4: 185.73.44.167 - ipv6: 20010ba800002ca70000000000000000 - preferred: - countries: - - GB - - IE - - IM - -# Corvallis/Pittsburgh, US -# Corvallis @ 44.5639267,-123.274707837676 -# Pittsburgh @ 40.4474127,-80.0078641 -usa: - lat: 42.5056697 - lon: -101.641285968838 - colour: "#6a3d9a" - servers: - - statuscake: - - 2217287 - - 2217288 - bandwidth: 100 - ipv4: 140.211.167.105 - ipv6: 2605bc8030100700000000008cdea769 - - statuscake: - - 4112776 - - 4112775 - bandwidth: 100 - ipv4: 204.16.246.252 - ipv6: 2607fdc0000100000000000000000052 - preferred: - countries: - - US - -# Budapest, HU -budapest: - lat: 47.4925 - lon: 19.051389 - statuscake: - - 2217283 - - 2217284 - colour: "#fdbf6f" - bandwidth: 80 - ipv4: 37.17.173.8 - ipv6: 20014c480002bf04025056fffe8f5c81 - -# Minsk, BY -minsk: - lat: 53.88586 - lon: 27.45368 - statuscake: - - 2217285 - - 2217286 - colour: "#ffed6f" - bandwidth: 80 - ipv4: 31.130.201.40 - ipv6: 2001067c22681005021e8cfffe8c8d3b - allowed: - countries: - - BY - - LT - - LV - -# Aalborg, DK -# BW Limit: 1000Mb/s -aalborg: - lat: 57.0159232 - lon: 9.97532374746345 - statuscake: - - 2217289 - - 2217290 - colour: "#80b1d3" - bandwidth: 160 - ipv4: 130.225.254.109 - ipv6: 20010878034600000000000000000109 - default: "xx" - -# Zaragoza, ES -zaragoza: - lat: 41.64207 - lon: -0.90054 - statuscake: - - 2217291 - - 2217292 - colour: "#fdb462" - bandwidth: 100 - ipv4: 155.210.4.103 - -# Athens, GR -athens: - lat: 37.983972 - lon: 23.727806 - statuscake: - - 2244901 - - 2244902 - colour: "#b3de69" - bandwidth: 80 - ipv4: 83.212.2.116 - ipv6: 200106482ffe00040000000000000116 - -# Montréal, CA -montreal: - lat: 45.5 - lon: -73.566667 - statuscake: - - 3155163 - - 3155162 - colour: "#b15928" - bandwidth: 100 - ipv4: 184.107.48.228 - preferred: - countries: - - CA - -# Cape Town, ZA -capetown: - lat: -33.91834 - lon: 18.42054 - statuscake: - - 2217295 - - 2217296 - colour: "#cab2d6" - bandwidth: 10 - ipv4: 196.10.54.165 - ipv6: 200143f801f40b00b283fefffed8dd45 - allowed: - countries: - - BW - - LS - - MZ - - NA - - SZ - - ZA - - ZW - -# Viña del Mar, CL -vinadelmar: - lat: -33.008099 - lon: -71.519699 - statuscake: - - 3499524 - - 3499526 - colour: "#ff7f00" - bandwidth: 80 - ipv4: 200.91.44.37 - allowed: - continents: - - SA - -# Zurich, CH -# BW Limit: 200Mb/s -zurich: - lat: 47.3769434 - lon: 8.5414061 - statuscake: - - 3743984 - - 3743985 - colour: "#ccebc5" - bandwidth: 200 - ipv4: 217.71.244.22 - ipv6: 200108e0004020390000000000000010 - preferred: - countries: - - CH - - IT - - SM - - VA - -# Kiev, UA -kiev: - lat: 50.4020865 - lon: 30.6146803128848 - statuscake: - - 3890448 - - 3890447 - colour: "#fb9a99" - bandwidth: 70 - ipv4: 176.122.99.101 - ipv6: 2001067c2d4000000000000000000065 - -# Wellington, NZ -wellington: - lat: -41.288889 - lon: 174.777222 - statuscake: - - 3911508 - - 3911509 - colour: "#ffff99" - bandwidth: 80 - ipv4: 114.23.141.203 - allowed: - continents: - - OC - countries: - - CC - preferred: - continents: - - OC - countries: - - CC - -# Hamilton, NZ -hamilton: - lat: -37.783333 - lon: 175.283333 - statuscake: - - 3931336 - - 3931337 - colour: "#999999" - bandwidth: 80 - ipv4: 103.197.61.160 - allowed: - continents: - - OC - countries: - - CC - preferred: - continents: - - OC - countries: - - CC - -# Linköping/Umeå, SE -# Linköping @ 58.403261,15.623611189797 -# Umeå @ 63.82177625,20.3043163114932 -sweden: - lat: 61.1125186 - lon: 17.9639637506451 - colour: "#d9d9d9" - servers: - - statuscake: - - 3932686 - - 3932688 - bandwidth: 40 - ipv4: 130.236.254.221 - ipv6: 200106b00017f0a000000000000000dd - - statuscake: - - 3949588 - - 3949589 - bandwidth: 40 - ipv4: 130.239.18.114 - ipv6: 200106b0000e2a180000000000000114 - -# Curitiba, BR -curitiba: - lat: -25.41403745 - lon: -49.252918753851 - statuscake: - - 3945882 - - 3945883 - colour: "#d9d9d9" - bandwidth: 80 - ipv4: 200.236.31.207 - ipv6: 2801008280ff80020216ccfffeaa0021 - allowed: - countries: - - BR - -# Pilsen, CZ -pilsen: - lat: 49.723689 - lon: 13.351542 - statuscake: - - 4065539 - - 4065540 - colour: "#d9d9d9" - bandwidth: 30 - ipv4: 147.228.60.16 - -# Spare colours: