ad04145791b59754c6a78f4dac94efdf92ede89d galt Wed Jun 19 15:29:48 2019 -0700 Updated geoIp mapping for our 3 official mirrors - RR, euro, asia with much better quality data from MaxMind. diff --git src/hg/geoIp/README_OLD src/hg/geoIp/README_OLD deleted file mode 100644 index fa3a9cc..0000000 --- src/hg/geoIp/README_OLD +++ /dev/null @@ -1,67 +0,0 @@ -http://software77.net/geo-ip/ - -wget 'http://software77.net/geo-ip/?DL=1' -O IpToCountry.csv.gz -gunzip IpToCountry.csv.gz -make -geoIpToCountry IpToCountry.csv > geoIpCountry.tab - -This was developed on hgFixed, and is still used and updated there. -But we copy the two required-by-cgi tables gbNode and geoIpNode -to hgcentral (hgcentraltest on hgwdev) for final release. - -The others shall remain in hgwdev.hgFixed db, -as we need to periodically update them. -This could be done even just once a year. - -The update script will only work on hgwdev. -Then these two tables will be pushed to hgcentral -on hgwbeta and RR. - -These helpful mysql functions make it convenient -to store the IP addresses as 4-byte unsigned 32-bit numbers -which makes the main lookup table extremely fast. - -INET_ATON() -INET_NTOA() - -Several of the simple .csv files were found online and downloaded, -like the country or continent, even the mapping from country to cont. - -Several of these were converted with awk/sed to .tab files for easy loading. - -The .as files were defined also to correspond to them. -The generated .sql files can be used to initialize empty tables. - -The Ip-to-country data is downloaded as above and then -we run the little c program geoIpToCountry on it producing -geoIpToCountry.tab - -At this point, we need a table that goes from geoIp to node, -so we need a mapping from country (which we have) to node. - -Although we can arbitrarily assign countries to nodes, -I made a table by joining the country and continent -and country-to-continent tables. Mapping whole continents -to the nodes may be too simplistic, but it is really just -a starting point. It can be re-done if people want to. - -After than, one can just maintain the countryToNode table in hgFixed, -and then use it to join with geoIpToCountry to create geoIpNode, -the main lookup table. Then that would need to get pushed to -hgcentral on various machines. - -The join would look something like this: - -delete from geoIpNode; -insert into geoIpNode select gic.ipStart, gic.ipEnd, ctn.node from geoIpCountry gic, continentToNode ctn where gic.country=ctn.country; - - -TESTING: -hg.conf::browser.geoSuffix=Test -for geoIpNodeTest, can just drop all rows and it will default to node1. -Then just add back the ip addresses for specific test machines that -you want to appear as though they are in node2. This is my screech IP address. - - insert into geoIpNodeTest values (inet_aton('128.114.57.19'),inet_aton('128.114.57.19'),'2'); - -