2010-05-14 4 views
9

मैं दर्शकों के देश को ट्रैक और फिर उन्हें क्या गूगल की तरह मेरी साइट के उचित उप डोमेन रीडायरेक्ट करना चाहते हैं ...मैं विज़िटर के देश को कैसे ट्रैक करूं और उन्हें उचित साइटों पर रीडायरेक्ट कर सकता हूं?

और किस हद तक मैं एपीआई के डेटा पर भरोसा कर सकते हैं अगर मैं किसी भी उपयोग करना चाहिए तक ? ..

मैं php का उपयोग कर रहा ..

+0

कई कंपनियां इंटरनेट एक्सेस एक देश के माध्यम से होती हैं, भले ही उनके कर्मचारी कहीं और – Mark

उत्तर

17

Maxmind's GeoLite Country डेटाबेस डाउनलोड और स्थापित करें, जो 99.5% सटीकता का दावा करता है। आप दावा किए गए 99.8% सटीकता के साथ एक भुगतान संस्करण में अपग्रेड करने के लिए भुगतान कर सकते हैं। PHP से डेटाबेस का उपयोग करने के तरीके के संबंध में चार विकल्प हैं:

  1. CSV फ़ाइल डाउनलोड करें और इसे अपने SQL डेटाबेस में आयात करें। यह सबसे धीमा विकल्प है, और इसमें एक बदसूरत एपीआई है। मैं इसकी अनुशंसा नहीं करता, लेकिन इसमें पूर्णता के लिए शामिल था।
  2. एक शुद्ध PHP क्लास डाउनलोड करें जो डेटाबेस फ़ाइल को पढ़ सकता है। यह SQL विकल्प की तुलना में एक अच्छा एपीआई प्रदान करता है, लेकिन अभी भी थोड़ा धीमा है। PHP4 और PHP5
  3. के लिए संस्करण हैं C extension module for PHP डाउनलोड और स्थापित करें। इसका nice interface और अच्छा प्रदर्शन होने का लाभ है। शुद्ध PHP वर्ग की तुलना में स्थापित करना अधिक कठिन है, इसलिए आपको अपनी होस्टिंग कंपनी से जांच करनी पड़ सकती है। यदि आप भाग्यशाली हैं, तो यह पहले ही इंस्टॉल हो सकता है।
  4. आप blazingly तेजी से प्रदर्शन की जरूरत है, Apache module साथ जाना। यह स्थापित करना सबसे कठिन है, लेकिन सबसे तेज़ विकल्प भी है।

इन सभी विकल्पों में देश का कोड प्राप्त करने के लिए एक विधि है। मैं एसक्यूएल विकल्प शामिल नहीं होगा, लेकिन आप more info here मिल सकती है।

शुद्ध PHP4:

include("geoip.inc"); 
$gi = geoip_open("/usr/local/share/GeoIP/GeoIP.dat",GEOIP_STANDARD); 
$code = geoip_country_code_by_addr($gi, "24.24.24.24"); 

PECL PHP एक्सटेंशन:

$code = geoip_country_code_by_name($_SERVER['REMOTE_ADDR']); 

अपाचे मॉड्यूल:

$code = apache_note("GEOIP_COUNTRY_CODE"); 

फिर आप इन कोड के आधार पर रीडायरेक्ट कर सकते हैं, एक HTTP रीडायरेक्ट का उपयोग कर:

$redirect = array("AU" => "http://australia.example.com", "NZ" => "http://newzealand.example.com") 
$url = $redirect[$code] 
header("Location: $url"); 

यह दो HTTP अनुरोध तथापि का कारण बनता है, और इस तरह से इनकी है।,

GeoIPEnable On 
GeoIPDBFile /path/to/GeoIP.dat 

# Redirect one country 
RewriteEngine on 
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^CA 
RewriteRule ^(.*)$ http://www.canada.com$1 [L] 

# Redirect multiple countries to a single page 
RewriteEngine on 
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(CA|US|MX)$ 
RewriteRule ^(.*)$ http://www.northamerica.com$1 [L] 

बेशक

, यह करने के लिए एक यकीनन बेहतर तरीका यह तुम्हारे लिए क्या करने के लिए किसी और को प्राप्त करने के लिए है पर: एक बेहतर दृष्टिकोण को फिर से लिखने ऐसा करने के लिए, अपने .htaccess फ़ाइल में अपाचे मॉड्यूल का उपयोग करने के लिए है डीएनएस स्तर। एक त्वरित खोज this company से पता चला, (मुझे नहीं पता कि वे अच्छे हैं या नहीं) इसमें कोई संदेह नहीं है कि कुछ भी हैं। इस तरह Google ऐसा करता है।

+1

बहुत साफ उत्तर दें। कहीं और संदर्भित करने की आवश्यकता नहीं .. धन्यवाद गीक – Vijay

1

विवरण के स्तर को जो करने के लिए आप अपने ग्राहक "दुनिया" विभाजित करना चाहते हैं और संभव लक्ष्यों की संख्या पर निर्भर (उप डोमेन) आप में उपलब्ध कराए गए आंकड़ों इस्तेमाल कर सकते हैं IP-to-country database या MaxMind.com's Free Geolocation Database, इसे एक SQL तालिका में रखें और फिर विज़िटर के आईपी पते पर एक लुकअप करने के लिए एक छोटी स्क्रिप्ट का उपयोग करें और आवश्यकतानुसार रीडायरेक्ट करें।

डेटा कभी भी 100% सटीक नहीं होगा, खासकर यदि आपके कोई भी आगंतुक प्रॉक्सी या अन्य अनामकर्ताओं के माध्यम से आपकी साइट तक पहुंचता है (जिस स्थिति में आप देखते हैं कि आईपी पता उनका सही पता नहीं है)। यदि आप इसे कार्यान्वित करते हैं, तो मैं सुझाव दूंगा कि उपयोगकर्ता को क्षेत्रीय पुनर्निर्देशन को सही (या बस ओवरराइड) करने की इजाजत दी जाएगी।

0

यदि आप इसे स्वयं कोडिंग करने की तरह महसूस नहीं करते हैं, तो इवान के पास लैम्ब्डा जियोआईपी नामक एक अच्छी स्क्रिप्ट है! इसे यहां देखें: http://www.lambdageoip.com

लैम्ब्डा जियोआईपी पूरी तरह से स्वयं-होस्ट की गई भू-लक्ष्यीकरण स्क्रिप्ट है जिसका उपयोग आप अपने आगंतुकों के भौगोलिक स्थान को निर्धारित करने के लिए अपनी वेबसाइट पर कर सकते हैं। इसके अतिरिक्त, आप यह निर्धारित कर सकते हैं कि कोई उपयोगकर्ता मोबाइल डिवाइस, बॉट या उपग्रह कनेक्शन का उपयोग कर रहा है या नहीं।

आप उपयोगकर्ताओं को अपने महाद्वीप, देश, क्षेत्र या शहर के आधार पर विभिन्न पृष्ठों पर भी अग्रेषित कर सकते हैं।

PHP में केवल 1 लाइन कोड के साथ आपकी साइट पर सभी सुविधाओं का उपयोग किया जा सकता है।

लैम्ब्डा जियोआईपी "घर पर फोन" नहीं करता है, रिमोट सामग्री लोड नहीं करता है, या किसी अन्य सर्वर से संवाद नहीं करता है। यह सुरक्षित और पूरी तरह से आत्मनिर्भर है।

0

यदि आपको अपने सर्वर पर एक आईपी डेटाबेस डाउनलोड करने, स्थापित करने और अद्यतित रखने में कोई फर्क नहीं पड़ता है तो प्रदर्शन के संदर्भ में फ़मार्क का समाधान सबसे अच्छा है। अन्यथा आप एक पुनर्निर्देशन सेवा जैसे www.redirectbycountry.com

0

एक संस्करण यह है कि आप अपने सेवा प्रदाताओं के आईपी पते का उपयोग कर सकते हैं और इसलिए इसे जावास्क्रिप्ट के साथ रीडायरेक्ट कर सकते हैं;

$.get("https://ipinfo.io", function(response) { 
    if(response.country=="GB"){ 
     window.location.replace("http://stackoverflow.com"); 
    } 
}, "jsonp"); 
संबंधित मुद्दे

 संबंधित मुद्दे