Redirect with geo IP

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
infosyst1
Δημοσιεύσεις: 45
Εγγραφή: 11 Ιουν 2003 13:43

Redirect with geo IP

Δημοσίευση από infosyst1 » 26 Ιουν 2010 16:19

Γεια σας παιδια

Μηπως εχει καποιος ενα script που κανει redirect απο μια webpage σε αλλη
αναλογα την χωρα?
Θελω να κανω redirect σε μια html η php σελιδα μου, να πηγαινει αμεσως σε μια αλλη αν οι επισκεπτες ειναι μονο απο Ελλαδα η Κυπρο.

Βοηθεια ?

Άβαταρ μέλους
burnmind
Script Master
Δημοσιεύσεις: 954
Εγγραφή: 26 Σεπ 2009 02:14
Τοποθεσία: UK
Επικοινωνία:

Redirect with geo IP

Δημοσίευση από burnmind » 26 Ιουν 2010 21:31

Αν μπορείς να το κάνεις μόνο με JavaScript δε ξέρω. Σου δίνω ένα php script που ήδη έχω, παραμετροποιημένο για τις ανάγκες σου. Χρησιμοποιεί το API του IPInfoDB για να σου επιστρέψει τον κωδικό της χώρας του επισκέπτη. Αν είναι από Ελλάδα ή Κύπρο, κάνει redirect εκεί που θα του πεις.

Αν θες όπωσδήποτε να κάνεις το redirect μέσω JavaScript, κάνε ένα AJAX request στο script, βάλτο να σου επιστρέφει τη χώρα και κάνε τον έλεγχο κι έπειτα το redirect με JS (ερωτηματικό το αν δουλεύει σωστά το $_SERVER['REMOTE_ADDR'] μετά από AJAX request, αλλά δεν έχω το κουράγιο να το δοκιμάσω τώρα).

Κώδικας: Επιλογή όλων

$ip = $_SERVER['REMOTE_ADDR'];
$url = "http://ipinfodb.com/ip_query_country.php?ip=$ip";

$ch = curl_init($url);
$timeout = 5;
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$buffer = curl_exec($ch);
curl_close($ch);

$xml = new SimpleXMLElement($buffer);
$countryCode = $xml -> CountryCode;

if($countryCode=='GR' || $countryCode=='CY')
{
  header('Location: http://to.url.sou');
}

infosyst1
Δημοσιεύσεις: 45
Εγγραφή: 11 Ιουν 2003 13:43

Redirect with geo IP

Δημοσίευση από infosyst1 » 27 Ιουν 2010 01:03

burNMind έγραψε:Αν μπορείς να το κάνεις μόνο με JavaScript δε ξέρω. Σου δίνω ένα php script που ήδη έχω, παραμετροποιημένο για τις ανάγκες σου. Χρησιμοποιεί το API του IPInfoDB για να σου επιστρέψει τον κωδικό της χώρας του επισκέπτη. Αν είναι από Ελλάδα ή Κύπρο, κάνει redirect εκεί που θα του πεις.

Αν θες όπωσδήποτε να κάνεις το redirect μέσω JavaScript, κάνε ένα AJAX request στο script, βάλτο να σου επιστρέφει τη χώρα και κάνε τον έλεγχο κι έπειτα το redirect με JS (ερωτηματικό το αν δουλεύει σωστά το $_SERVER['REMOTE_ADDR'] μετά από AJAX request, αλλά δεν έχω το κουράγιο να το δοκιμάσω τώρα).

Κώδικας: Επιλογή όλων

$ip = $_SERVER['REMOTE_ADDR'];
$url = "http://ipinfodb.com/ip_query_country.php?ip=$ip";

$ch = curl_init($url);
$timeout = 5;
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$buffer = curl_exec($ch);
curl_close($ch);

$xml = new SimpleXMLElement($buffer);
$countryCode = $xml -> CountryCode;

if($countryCode=='GR' || $countryCode=='CY')
{
  header('Location: http://to.url.sou');
}
Σε ευχαριστω, θα το δοκιμασω και αν εχω απορια θα σε ρωτησω...
Καλα να περνας!

infosyst1
Δημοσιεύσεις: 45
Εγγραφή: 11 Ιουν 2003 13:43

Redirect with geo IP

Δημοσίευση από infosyst1 » 29 Ιουν 2010 14:53

Το εβαλα, φενετ οτι παιζει, αλλα δεν κανει redirect οταν το δοκιμαζω εγω π.χ. που ειμαι απο Ελλαδα.
Γιατι ?

Άβαταρ μέλους
burnmind
Script Master
Δημοσιεύσεις: 954
Εγγραφή: 26 Σεπ 2009 02:14
Τοποθεσία: UK
Επικοινωνία:

Redirect with geo IP

Δημοσίευση από burnmind » 29 Ιουν 2010 15:39

infosyst1 έγραψε:Το εβαλα, φενετ οτι παιζει, αλλα δεν κανει redirect οταν το δοκιμαζω εγω π.χ. που ειμαι απο Ελλαδα.
Γιατι ?
Το δοκιμάζεις σε κανονικό server ή σε local;

Βγάζει κάποιο error;

Αν κάνεις echo τα $id και $countryCode τι επιστρέφουν;

infosyst1
Δημοσιεύσεις: 45
Εγγραφή: 11 Ιουν 2003 13:43

Redirect with geo IP

Δημοσίευση από infosyst1 » 16 Νοέμ 2010 23:46

burNMind έγραψε:
infosyst1 έγραψε:Το εβαλα, φενετ οτι παιζει, αλλα δεν κανει redirect οταν το δοκιμαζω εγω π.χ. που ειμαι απο Ελλαδα.
Γιατι ?
Το δοκιμάζεις σε κανονικό server ή σε local;

Βγάζει κάποιο error;

Αν κάνεις echo τα $id και $countryCode τι επιστρέφουν;

Καλησπερα.

Μετα απο ...καιρο το δοκιμασα και επαιξε καμια εβδομαδα. Απο χθες σταματησε. Κοιταξα στο σιτε και ειδα κατι..., μηπως κατι αλλαξαν στο ipinfodb και θελει αλλαγη ο κωδικας?

Σε ευχαριστω...

Άβαταρ μέλους
burnmind
Script Master
Δημοσιεύσεις: 954
Εγγραφή: 26 Σεπ 2009 02:14
Τοποθεσία: UK
Επικοινωνία:

Redirect with geo IP

Δημοσίευση από burnmind » 17 Νοέμ 2010 00:16

Αλλάξαν το API τους, μπορείς να βρεις περισσότερες πληροφορίες εδώ: http://ipinfodb.com/ip_location_api.php

infosyst1
Δημοσιεύσεις: 45
Εγγραφή: 11 Ιουν 2003 13:43

Redirect with geo IP

Δημοσίευση από infosyst1 » 17 Νοέμ 2010 09:46

burNMind έγραψε:Αλλάξαν το API τους, μπορείς να βρεις περισσότερες πληροφορίες εδώ: http://ipinfodb.com/ip_location_api.php

http://api.ipinfodb.com/v2/ip_query_country.php?key=<to key moy>&ip=74.125.45.100

$url = "http://ipinfodb.com/ip_query_country.php?ip=$ip";

Συγνωμη που σε ενοχλω και παλι, αλλα ειμαι λιγο ...ασχετος με php.
Προσπαθω να προσαρμοσω την 2η παλια γραμμη με την πρωτη και το key moy , που γραφω εκει το νουμερο που μου εδωσαν αλλα δεν δουλευει. Μπορεις να μου πεις την νεα σωστη συνταξη της?

Ευχαριστω πολυ

Άβαταρ μέλους
burnmind
Script Master
Δημοσιεύσεις: 954
Εγγραφή: 26 Σεπ 2009 02:14
Τοποθεσία: UK
Επικοινωνία:

Redirect with geo IP

Δημοσίευση από burnmind » 17 Νοέμ 2010 12:10

Το να είσαι "άσχετος" με php και να ζητάς βοήθεια είναι απόλυτα θεμιτό. Αλλά, χωρίς παρεξήγηση, λίγο παρατηρητικός δε μπορείς να είσαι, ή απλά δε θέλεις να αφιερώσεις 2 λεπτά; Πραγματικά και σε ένα παιδί να το βάλεις σαν πρόβλημα/παιχνίδι θα το λύσει (το να βρει τι κοινό έχουν τα 2 και να προσθέσει το ένα στο άλλο).

Κώδικας: Επιλογή όλων

$url = "http&#58;//api.ipinfodb.com/v2/ip_query_country.php?key=toKeySou&ip=$ip";
Αν δε σου δουλεύει ξανά, σημαίνει πως άλλαξαν και το response τους. Δύσκολο να το διορθώσεις δεν είναι (αν δεις τι επιστρέφει το url), αλλά θέλει να ασχοληθείς λίγο. Προς το παρόν δε μπορώ να σε βοηθήσω παραπάνω γιατί δε μου έχουν στείλει ακόμα το API key μου.

edit: Απ' ότι βλέπω δεν έχει αλλάξει, οπότε θα δουλέψει κανονικά.

infosyst1
Δημοσιεύσεις: 45
Εγγραφή: 11 Ιουν 2003 13:43

Redirect with geo IP

Δημοσίευση από infosyst1 » 17 Νοέμ 2010 22:45

burNMind έγραψε:Το να είσαι "άσχετος" με php και να ζητάς βοήθεια είναι απόλυτα θεμιτό. Αλλά, χωρίς παρεξήγηση, λίγο παρατηρητικός δε μπορείς να είσαι, ή απλά δε θέλεις να αφιερώσεις 2 λεπτά; Πραγματικά και σε ένα παιδί να το βάλεις σαν πρόβλημα/παιχνίδι θα το λύσει (το να βρει τι κοινό έχουν τα 2 και να προσθέσει το ένα στο άλλο).

Κώδικας: Επιλογή όλων

$url = "http&#58;//api.ipinfodb.com/v2/ip_query_country.php?key=toKeySou&ip=$ip";
Αν δε σου δουλεύει ξανά, σημαίνει πως άλλαξαν και το response τους. Δύσκολο να το διορθώσεις δεν είναι (αν δεις τι επιστρέφει το url), αλλά θέλει να ασχοληθείς λίγο. Προς το παρόν δε μπορώ να σε βοηθήσω παραπάνω γιατί δε μου έχουν στείλει ακόμα το API key μου.

edit: Απ' ότι βλέπω δεν έχει αλλάξει, οπότε θα δουλέψει κανονικά.
Ναι το εψαξα αρκετα, δεν εβγαζε error αλλα δεν μου εκανε redirect. Θα το δοκιμασω παλι τωρα να δω τι λαθος εκανα και αν δουλεψει και θα σου πω.
Οπως και να εχει ευχαριστω...

infosyst1
Δημοσιεύσεις: 45
Εγγραφή: 11 Ιουν 2003 13:43

Redirect with geo IP

Δημοσίευση από infosyst1 » 19 Νοέμ 2010 10:03

Τα εκανα ολα σωστα αλλα ενω κανει παλι redirect το κανει παντα! Δηλαδη δεν το κανει μονο για Ελλαδα και Κυπρο π.χ. που θελουμε. Μαλλον θελει καποια αλλαγη ο κωδικας.
Αν μπορεις να με βοηθησεις ?
Σου παραθετω τον κωδικα και με το ενα key (η δοκιμασε με καποιο δικο σου αν φταιει αυτο, που δεν νομιζω...

<?php
$ip = $_SERVER['REMOTE_ADDR'];
$url = "http://api.ipinfodb.com/v2/ip_query_cou ... 9b33ae3&ip";
$ch = curl_init($url);
$timeout = 5;
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$buffer = curl_exec($ch);
curl_close($ch);
$xml = new SimpleXMLElement($buffer);
$countryCode = $xml -CountryCode;
if($countryCode=='GR' || $countryCode=='CY')
{
header('Location: http://www.google.gr');
}
?>

Άβαταρ μέλους
burnmind
Script Master
Δημοσιεύσεις: 954
Εγγραφή: 26 Σεπ 2009 02:14
Τοποθεσία: UK
Επικοινωνία:

Redirect with geo IP

Δημοσίευση από burnmind » 19 Νοέμ 2010 12:31

infosyst1 έγραψε:Τα εκανα ολα σωστα
infosyst1 έγραψε:$countryCode = $xml -CountryCode;
burNMind έγραψε:$countryCode = $xml->CountryCode;

infosyst1
Δημοσιεύσεις: 45
Εγγραφή: 11 Ιουν 2003 13:43

Redirect with geo IP

Δημοσίευση από infosyst1 » 19 Νοέμ 2010 14:42

burNMind έγραψε:
infosyst1 έγραψε:Τα εκανα ολα σωστα
infosyst1 έγραψε:$countryCode = $xml -CountryCode;
burNMind έγραψε:$countryCode = $xml->CountryCode;
Σε ευχαριστω. Τα ειδα τα λαθη μου. Να σαι καλα!

infosyst1
Δημοσιεύσεις: 45
Εγγραφή: 11 Ιουν 2003 13:43

Redirect with geo IP

Δημοσίευση από infosyst1 » 06 Ιούλ 2012 12:24

Καλησπερα παιδια

Μια βοηθεια γιατι με το php ποτε δεν τα πηγαινα και τοσο καλα...

Μετα απο καιρο πληρωσα για ενα key στην ip2location.com μιας και η free εκδοση παιζει μονο στην ...otenet στην Ελλαδα. Δηλαδη δεν κανει redirect ουτε αναγνωριζει απο αλλες εταιρειες την χωρα των users.

Ετσι στον παρακατω κωδικα php που δουλευε με το free key αλλαξα την γραμμη με το νεο πληρωμενο αλλα δεν παιζει ο κωδικας. Τι λαθος κανω ?

THE NEW PAY LINE
$url = "http://api.ip2location.com/?key=mykey&ip=$ip";

THE OLD FREE LINE
$url = "http://api.ipinfodb.com/v2/ip_query_cou ... key&ip=$ip";


ALL THE OLD FREE

<?php
$ip = $_SERVER['REMOTE_ADDR'];
$url = "http://api.ipinfodb.com/v2/ip_query_cou ... key&ip=$ip";
$ch = curl_init($url);
$timeout = 5;
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$buffer = curl_exec($ch);
curl_close($ch);
$xml = new SimpleXMLElement($buffer);
$countryCode = $xml->CountryCode;
if($countryCode=='GR' || $countryCode=='CY')
{
header('Location: http://www.test.gr');
}
?>

infosyst1
Δημοσιεύσεις: 45
Εγγραφή: 11 Ιουν 2003 13:43

Redirect with geo IP

Δημοσίευση από infosyst1 » 07 Ιούλ 2012 01:18

Βγαζει το error

INVALID IP ADDRESS

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες