add geoip algorithm