index.js 813 B

123456789101112131415161718192021
  1. window.regions = document.querySelectorAll('link[rel=region]');
  2. window.regionMap = {};
  3. window.regions.forEach(function(item) {
  4. window.regionMap[item.attributes.regionflag.value] = item.attributes.href.value;
  5. });
  6. let xhr = new XMLHttpRequest();
  7. xhr.open("GET", "https://api.ipify.org/?format=json");
  8. xhr.addEventListener("loadend", async function (e){
  9. let responseObj = JSON.parse(this.response);
  10. let ip = responseObj.ip;
  11. let regionData = await ipToRegion(ip);
  12. if (window.regionMap[regionData.geoplugin_countryName]) {
  13. window.location.href = window.regionMap[regionData.geoplugin_countryName]
  14. }
  15. });
  16. xhr.send();
  17. async function ipToRegion(ip) {
  18. const response = await fetch(`http://www.geoplugin.net/json.gp?ip=${ip}`);
  19. const data = await response.json();
  20. return data;
  21. }