2008-11-24 17 views
7

मैं नहीं चाहता कि उपयोगकर्ता Google गियर्स इंस्टॉल करें ताकि मैं उसे अपना अनुमानित स्थान दिखा सकूं। क्या Google Gears का उपयोग किए बिना स्थान प्राप्त करने का कोई तरीका है?उपयोगकर्ता गियर को इंस्टॉल किए बिना उपयोगकर्ता का स्थान प्राप्त करने का कोई तरीका है?

मुझे http://www.wipmania.com/de/blog/google-geolocation-api/ मिला है लेकिन यह एक उदाहरण प्रदान नहीं करता है।

+0

यह हमेशा मेरे लिए सबसे अच्छा परिणाम पड़ा है: http://united-coders.com/christian-harms/free-ip-location-script –

+0

आप किसी तीसरे पक्ष को एक कॉल कर सकते मेरी तरह की एपीआई, https://ipdata.co – Jonathan

उत्तर

9

इसे आम तौर पर आईपी जिओलोकेशन कहा जाता है।

एक उदाहरण here है।

बात यह है कि, अधिकांश साइटें (यदि आप इसे वेब सेवा के रूप में कॉल करने की योजना बना रहे हैं) तो आप इसके लिए शुल्क लेंगे। अन्यथा, एक भौगोलिक स्थान पृष्ठ को पकड़ने वाली एक वेब सेवा को एक साथ फेंक दें, इसे पते के लिए पार्स करें, और उस जानकारी के टुकड़े को वापस कर दें।

पीएचपी में, यह बहुत अच्छी तरह से काम करने के लिए लगता है: एक जियोलोकेशन सेवा या पुस्तकालय के साथ के लिए बाहर देखने के लिए

<?php 
if(isset($_GET["ip"])){ 
    echo geolocate($_GET["ip"]); 
} 

function geolocate($ip){ 
    $raw_html = file_get_contents("http://www.geody.com/geoip.php?ip=$ip"); 
    if(preg_match('/Location:(.*)/',$raw_html,$matches)){ 
    $location_raw = $matches[1]; 

    //Get rid of pesky HTML tags 
    $location = preg_replace("/<[^>]*>/","",$location_raw); 
    return $location; 
    }else{ 
    return "ERROR"; 
    } 
} 
5

एक बात यह है कि वे 100% सही नहीं होगा है। हम एक, IP2Location का उपयोग करते हैं, और यह वास्तव में हमारे ग्राहक सेवा विभाग को शिकायतों का एक स्थिर स्रोत रहा है। हम साइट के व्यवहार को बदलने और इसे पूरी तरह से हटाने के कारकों का वजन करने के तरीकों को देख रहे हैं।

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

उदाहरण के लिए, मैं मैनहट्टन के उत्तर में लगभग साठ मील की दूरी पर रहता हूं, लेकिन मेरा आईपी अक्सर दिखाता है कि मैं अधिकांश लुकअप टूल के साथ शिकागो में हूं। मेरे पास एफआईओएस है, और मैंने कुछ अन्य लोगों से बात की है जिन्होंने एक ही व्यवहार की पुष्टि की है।

10

Google उपयोगकर्ता के स्थान को AJAX API loader के माध्यम से प्राप्त करने का एक तरीका प्रदान करता है। यह गियर्स के बिना भी काम करेगा।

<script type="text/javascript" 
    src="http://www.google.com/jsapi?key=ABCDEFG"> 
</script> 

जब एक आवेदन AJAX API लोडर का उपयोग करता है, लोडर यह के आईपी पते के आधार पर ग्राहक का पता लगाने के लिए भू करने का प्रयास: बस एक स्क्रिप्ट टैग JSAPI की ओर इशारा करते भी हैं। यदि यह प्रक्रिया सफल हो जाती है, तो क्लाइंट का स्थान, मेट्रो स्तर तक पहुंच गया है, google.loader.ClientLocation प्रॉपर्टी में उपलब्ध कराया गया है। यदि प्रक्रिया एक मैच खोजने में विफल रहता है, तो यह संपत्ति शून्य पर सेट हो जाती है।

if (google.loader.ClientLocation){ 
    var center = new google.maps.LatLng(
    google.loader.ClientLocation.latitude, 
    google.loader.ClientLocation.longitude 
); 
    map.setCenter(center); 
} 

जब पॉप्युलेट किया गया, google.loader।ClientLocation वस्तु निम्नलिखित मेट्रो-स्तरीय विवरण के स्तर को गुणों के साथ से भर जाता है:

  • ClientLocation.latitude - आपूर्ति ग्राहक के आईपी पते
  • ClientLocation.longitude के साथ जुड़े कम संकल्प अक्षांश - ग्राहक के आईपी पते के साथ जुड़े कम संकल्प देशांतर आपूर्ति
  • ClientLocation.address.city - ग्राहक के आईपी पते से जुड़े शहर का नाम
  • ClientLocation.address.country - ग्राहक के आईपी पते से जुड़े देश का नाम
  • ClientLocation.address.country_code - आईएसओ 3166-1 देश ग्राहक के आईपी पते
  • ClientLocation.address.region के साथ जुड़े कोड के नाम की आपूर्ति - ग्राहक के आईपी पते
+0

मेरी वेबसाइट के लिए मैंने विश्लेषण किया है कि सफलता दर 54% है। यह बहुत प्रभावशाली नहीं है :( – Varun

1

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

वे एंड्रॉइड, विंडोज मोबाइल, ब्लैकबेरी और सिम्बियन का समर्थन करते हैं जो लगभग सभी स्मार्टफोन को कवर करता है।

3

आप इस उद्देश्य के लिए HTML5 का उपयोग कर सकते हैं। यह बहुत आसान है। Here उदाहरण है।

1

आप इस सरल कोड का उपयोग कर आईपी पते को geocode कर सकते हैं। यह बहुत अच्छा काम करता है। इस प्रयास करें:

function functionname(Your IP Here) 
{ 

    $ip = $ClientIP; 

    $json = file_get_contents("http://api.easyjquery.com/ips/?ip=".$ip."&full=true"); 

    $json = json_decode($json,true); 

    return $json; 
} 
संबंधित मुद्दे

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