admin管理员组文章数量:1181432
How to redirect user visiting my sites to location specific sites using the IP Address.
I have 3 location specific sites.
1. Europe.
2. US.
3. Asia.
In short
I wanted to find the location of the client using his IP Address. The solution needs to use Google APIs.
How to redirect user visiting my sites to location specific sites using the IP Address.
I have 3 location specific sites.
1. Europe.
2. US.
3. Asia.
In short
I wanted to find the location of the client using his IP Address. The solution needs to use Google APIs.
- 1 You'll need to give us more info on that. What server you using. From where to where you want to redirect. You want to redirect according to IP of by browser preferences, .... – matejv Commented Dec 13, 2012 at 10:24
- Getting the user IP and then redirecting since you din't include any server side language. Use google for such silly things. – Shyam K Commented Dec 13, 2012 at 10:28
- Do you really need to redirect with javascript? Wouldn't it be better to redirect on server side? – matejv Commented Dec 13, 2012 at 10:29
- I'm planning to redirect using javascript. I tried googling and ended up google.load for location. all the examples are about showing location specific maps. nowhere I got example of getting location. – Vishnudev K Commented Dec 13, 2012 at 10:32
- I am working on fatwire my javascript knowledge is limited. I thought javascript provides a feasible solution in this senario. correct me if i'm wrong – Vishnudev K Commented Dec 13, 2012 at 10:36
5 Answers
Reset to default 13I got the solution using "google.loader.ClientLocation"
here is the code for that if somebody needs it.
Check this JSFiddle
http://jsfiddle.net/kvishnudev/7Ut65/1/
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Get web visitor's location</title>
<meta name="robots" value="none" />
</head>
<body>
<div id="yourinfo"></div>
<script type="text/javascript" src="http://www.google.com/jsapi?key=ABQIAAAAp04yNttlQq-7b4aZI_jL5hQYPm-xtd00hTQOC0OXpAMO40FHAxQMnH50uBbWoKVHwgpklyirDEregg"></script>
<script type="text/javascript">
var Continent = {"AD":"Europe","AE":"Asia","AF":"Asia","AG":"North America","AI":"North America","AL":"Europe","AM":"Asia","AN":"North America","AO":"Africa","AQ":"Antarctica","AR":"South America","AS":"Australia","AT":"Europe","AU":"Australia","AW":"North America","AZ":"Asia","BA":"Europe","BB":"North America","BD":"Asia","BE":"Europe","BF":"Africa","BG":"Europe","BH":"Asia","BI":"Africa","BJ":"Africa","BM":"North America","BN":"Asia","BO":"South America","BR":"South America","BS":"North America","BT":"Asia","BW":"Africa","BY":"Europe","BZ":"North America","CA":"North America","CC":"Asia","CD":"Africa","CF":"Africa","CG":"Africa","CH":"Europe","CI":"Africa","CK":"Australia","CL":"South America","CM":"Africa","CN":"Asia","CO":"South America","CR":"North America","CU":"North America","CV":"Africa","CX":"Asia","CY":"Asia","CZ":"Europe","DE":"Europe","DJ":"Africa","DK":"Europe","DM":"North America","DO":"North America","DZ":"Africa","EC":"South America","EE":"Europe","EG":"Africa","EH":"Africa","ER":"Africa","ES":"Europe","ET":"Africa","FI":"Europe","FJ":"Australia","FK":"South America","FM":"Australia","FO":"Europe","FR":"Europe","GA":"Africa","GB":"Europe","GD":"North America","GE":"Asia","GF":"South America","GG":"Europe","GH":"Africa","GI":"Europe","GL":"North America","GM":"Africa","GN":"Africa","GP":"North America","GQ":"Africa","GR":"Europe","GS":"Antarctica","GT":"North America","GU":"Australia","GW":"Africa","GY":"South America","HK":"Asia","HN":"North America","HR":"Europe","HT":"North America","HU":"Europe","ID":"Asia","IE":"Europe","IL":"Asia","IM":"Europe","IN":"Asia","IO":"Asia","IQ":"Asia","IR":"Asia","IS":"Europe","IT":"Europe","JE":"Europe","JM":"North America","JO":"Asia","JP":"Asia","KE":"Africa","KG":"Asia","KH":"Asia","KI":"Australia","KM":"Africa","KN":"North America","KP":"Asia","KR":"Asia","KW":"Asia","KY":"North America","KZ":"Asia","LA":"Asia","LB":"Asia","LC":"North America","LI":"Europe","LK":"Asia","LR":"Africa","LS":"Africa","LT":"Europe","LU":"Europe","LV":"Europe","LY":"Africa","MA":"Africa","MC":"Europe","MD":"Europe","ME":"Europe","MG":"Africa","MH":"Australia","MK":"Europe","ML":"Africa","MM":"Asia","MN":"Asia","MO":"Asia","MP":"Australia","MQ":"North America","MR":"Africa","MS":"North America","MT":"Europe","MU":"Africa","MV":"Asia","MW":"Africa","MX":"North America","MY":"Asia","MZ":"Africa","NA":"Africa","NC":"Australia","NE":"Africa","NF":"Australia","NG":"Africa","NI":"North America","NL":"Europe","NO":"Europe","NP":"Asia","NR":"Australia","NU":"Australia","NZ":"Australia","OM":"Asia","PA":"North America","PE":"South America","PF":"Australia","PG":"Australia","PH":"Asia","PK":"Asia","PL":"Europe","PM":"North America","PN":"Australia","PR":"North America","PS":"Asia","PT":"Europe","PW":"Australia","PY":"South America","QA":"Asia","RE":"Africa","RO":"Europe","RS":"Europe","RU":"Europe","RW":"Africa","SA":"Asia","SB":"Australia","SC":"Africa","SD":"Africa","SE":"Europe","SG":"Asia","SH":"Africa","SI":"Europe","SJ":"Europe","SK":"Europe","SL":"Africa","SM":"Europe","SN":"Africa","SO":"Africa","SR":"South America","ST":"Africa","SV":"North America","SY":"Asia","SZ":"Africa","TC":"North America","TD":"Africa","TF":"Antarctica","TG":"Africa","TH":"Asia","TJ":"Asia","TK":"Australia","TM":"Asia","TN":"Africa","TO":"Australia","TR":"Asia","TT":"North America","TV":"Australia","TW":"Asia","TZ":"Africa","UA":"Europe","UG":"Africa","US":"North America","UY":"South America","UZ":"Asia","VC":"North America","VE":"South America","VG":"North America","VI":"North America","VN":"Asia","VU":"Australia","WF":"Australia","WS":"Australia","YE":"Asia","YT":"Africa","ZA":"Africa","ZM":"Africa","ZW":"Africa"};
if(google.loader.ClientLocation)
{
visitor_lat = google.loader.ClientLocation.latitude;
visitor_lon = google.loader.ClientLocation.longitude;
visitor_city = google.loader.ClientLocation.address.city;
visitor_region = google.loader.ClientLocation.address.region;
visitor_country = google.loader.ClientLocation.address.country;
visitor_countrycode = google.loader.ClientLocation.address.country_code;
if(visitor_countrycode!= null)
{
var Cont = Continent[visitor_countrycode];
//alert(Cont);
}
//
document.getElementById('yourinfo').innerHTML = '<p>Lat/Lon: ' + visitor_lat + ' / ' + visitor_lon + '</p><p>Location: ' + visitor_city + ', ' + visitor_region +', Continent : ' + Cont + ', ' + visitor_country + ' (' + visitor_countrycode + ')</p>';
}
else
{
document.getElementById('yourinfo').innerHTML = '<p>Whoops!</p>';
}
</script>
</body>
There are two options:
A backend solution, using Maxmind GeoIP DLL, an IP to country converter: http://dev.maxmind.com/geoip/downloadable.
A frontend solution (The one I know is not free but pretty cheap: http://www.maxmind.com/en/javascript)
Both allow you to transform an IP to country, then you can aggregate country to location.
Once you have the location (Europe, US, Asia) you can then redirect to the appropriate site.
Here is a very simple and effective solution with much less code:
this piece of code makes use of the infamous fetch
api in javascript
to make a request to a third-party url: https://ipinfo.io/json
which return a JSON
object of the client's details.
you can decide to put this piece of code in a <script>
tag in your header or footer. Or maybe in a file that is later imported.
Happy coding!!!
fetch('https://ipinfo.io/json').then((res) => {
res.json().then((data) => {
if(data.country === "/*Country Code*/"){
window.location.href = '/*Redirect URL*/';
}
});
});
Dont know If this answers your problem, I wanted to try this using Python, though its been really long time this Question was posted. just to see If I'm thinking in the right way :)
I've a weblog, with most frequent visitors from an IP, I've checked the IP and it belongs to a Consulting company. Finally after through analysis I've 3 different IPs of a Educational Institute, Product Dev company & another consulting company constituting about ~30% each. I wanted to deploy a User specific Page and test it. I was not able to do it for some reasons. Anway sharing is caring.
first get IP,
import socket
user_ip= gethostbyname(gethostname())
IP_cons=xxx # you can also set IP range in the form of a list
IP_edu =yyy
IP_cons2=zzz
if user_ip ==IP_cons: # user_ip in IP_cons if lsit of IPs
<redirect to IP_cons.html>
elif user_ip == IP_edu:
redirect to IP_edu.html>
elif user_ip == IP_cons2:
redirect to IP_cons2.html>
else:
home.html
Thanks.
A possible solution could be as explain here https://medium.com/@ipapi/automatically-redirect-to-country-specific-page-f687e514595e
It will return you country code based on visitor's IP, you can then write your redirection logic based on it.
本文标签: javascriptRedirect User to different Website Based on Location (IP Address)Stack Overflow
版权声明:本文标题:javascript - Redirect User to different Website Based on Location (IP Address) - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1738252913a2071456.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论