दिलचस्प पोस्ट
मैं एक स्थानीय निर्देशिका में एक सीपीएएन मॉड्यूल कैसे स्थापित कर सकता हूं? फोनगैप – नेविगेटर.एप.बैकहैतियात () HTML बैक बटन पर काम नहीं कर रहा है सीएसएस – कैसे स्क्रीन से पूरी चौड़ाई के लिए div से अतिप्रवाह आर में लेटेक्स टेबल बनाने के लिए उपकरण कंसोल आउटपुट को एक txt फ़ाइल में कैसे लिखें वादे के बारे में / ए + विशिष्टता, "तोनीय" और "वादा" के बीच अंतर क्या है? तत्वों में रिक्त स्थान के साथ BASH सरणी क्या एक .net MySqlCommand में एक MySQL उपयोगकर्ता परिभाषित चर का उपयोग करना संभव है? मोचा परीक्षण चलते समय बेबेल अप्रत्याशित टोकन आयात माइक्रोसॉफ्ट एक्सेल ActiveX नियंत्रण अक्षम है? जावा में पाइप (|) ऑपरेटर स्ट्रिंग के पहले एन वर्ण प्राप्त करें इकाई फ़्रेमवर्क और संदर्भ निपटान जावा के यूनरी प्लस ऑपरेटर का क्या उद्देश्य है? Android SDK AsyncTask doInBackground चल नहीं रहा (उपवर्ग)

एक आईपी पते से एक ज़िप कोड और शहर कैसे निर्धारित करें?

मैं खुली एपीआई या 3 डी पार्टी उत्पादों के लिए सलाह की तलाश कर रहा हूं जो भौगोलिक विशिष्ट वेब साइट की सामग्री बनाने के लिए एक ज़िप कोड और शहर में एक आईपी पते को बदलने में मदद करेगा।

वेब के समाधान से एकत्रित समाधान "एक आईपी पते से एक ज़िप कोड और शहर कैसे निर्धारित करें?"

मैं क्या उपयोग करता हूँ ip2nation: http://www.ip2nation.com

यह देश मैपिंग के लिए आईपी के एक पूरी तरह से मुक्त MySQL डाटाबेस है। इसमें उनकी साइट पर कुछ नमूना PHP स्क्रिप्ट शामिल हैं

मैं इसे अपने वर्डप्रेस ब्लॉग पर ओज फ्री आईप टू नेशन वर्डप्रेस प्लगइन के साथ प्रयोग कर रहा हूं

यहां तक ​​कि अगर आप वर्डप्रेस का उपयोग नहीं कर रहे हैं, तो प्लगइन डाउनलोड करें क्योंकि इससे आप डेटाबेस का उपयोग करने के लिए PHP कोड का एक अच्छा सेट देंगे। उसके पास छोटे देश के झंडे का एक अच्छा सेट भी है, जिसे आप देश के नाम के आगे, या उसके बजाय प्रदर्शित कर सकते हैं, जो कि मैं अपने ब्लॉग के टिप्पणीकार के नामों के बाद स्वचालित रूप से झंडे दिखाता हूं।

वास्तव में, आपको इसके लिए एपीआई की जरूरत नहीं है। आपको बस डेटाबेस की आवश्यकता है और इसे एक्सेस करने के लिए PHP और SQL कोड लिखने की क्षमता है।

मैं आकस्मिक उपयोग के लिए ip2location की सिफारिश नहीं करेगा वे अपने डाटाबेस के लिए बहुत शुल्क लेते हैं, और उनके डेटाबेस बहुत बड़े होते हैं, और अधिकतर लोगों की जरूरत के मुकाबले अधिक विस्तार होता है।

लेकिन ip2nation केवल देश के स्तर पर जाता है। यदि आपको शहरों और ज़िपोड की आवश्यकता होती है (इस तथ्य के बावजूद कि वे अन्य उत्तर / टिप्पणियों के रूप में गलत हो सकते हैं), तो ip2location के अतिरिक्त, आप जियोबाइट्स की कोशिश कर सकते हैं । उनके विशेष रूप से भौगोलिक-विशिष्ट वेब साइट की सामग्री के लिए अनुकूल घटक हैं, जैसे कि जियोसइलेक्ट: http://www.geobytes.com/GeoSelect.htm

Google पर "आईपी से ज़िपकोड" की खोज करें

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

मुझे आशा है कि सभी उपयोगकर्ता, जो आईपी पते से स्थान प्राप्त करना चाहते हैं, इस छोटे कोड का उपयोग करने के साथ उचित समाधान प्राप्त करेंगे।

 $ip_addr = $_SERVER['REMOTE_ADDR']; $geoplugin = unserialize( file_get_contents('http://www.geoplugin.net/php.gp?ip='.$ip_addr) ); if ( is_numeric($geoplugin['geoplugin_latitude']) && is_numeric($geoplugin['geoplugin_longitude']) ) { $lat = $geoplugin['geoplugin_latitude']; $long = $geoplugin['geoplugin_longitude']; } 

Geocoder.ca आईपी ​​पते (उत्तर अमेरिका केवल) जैसे, http://geocoder.ca/99.229.2.190?geoit=xml के लिए बहुत सारी जानकारी देता है (यह भी भूइट = जेसन और जेएसएनपी का समर्थन करता है)

 <result> <geodata> <latt>43.623262</latt> <longt>-79.749543</longt> <city>MISSISSAUGA</city> <prov>ON</prov> <postal>L5N7Z9</postal> <stnumber>1837</stnumber> <staddress>Samuelson CIR</staddress> <TimeZone>America/Toronto</TimeZone> <AreaCode>289</AreaCode> <confidence>1</confidence> <intersection> <street1>Samuelson Cir</street1> <street2>Stockbridge Crt</street2> <lattx>43.622696</lattx> <longtx>-79.748706</longtx> <city>MISSISSAUGA</city> <prov>ON</prov> <distance>0.179</distance> </intersection> </geodata> </result> 

निम्नलिखित एक स्निपेट का एक संशोधित संस्करण है जो मैंने पाया है http://ipinfodb.com/ip_locator.php इसकी जानकारी प्राप्त करने के लिए। ध्यान रखें, आप उनके साथ एपीआई कुंजी के लिए भी आवेदन कर सकते हैं और एपीआई का सीधे उपयोग की जाने वाली जानकारी प्राप्त करने के लिए उपयोग कर सकते हैं। जैसा कि आप http://ipinfodb.com/ip_location_api.php देख सकते हैं, उनके पास एफ़.पी.नेट से पीएचपी से जावास्क्रिप्ट की हर चीज में उदाहरण हैं। जैसा कि उल्लेख किया गया है, नीचे एक कुंजी की आवश्यकता नहीं है क्योंकि यह अपने सार्वजनिक पृष्ठ खींचती है और रेगेक्स को निर्दिष्ट जानकारी प्राप्त करने के लिए पेज के माध्यम से खींचती है। कुंजी मुफ्त हैं

टुकड़ा

 function detect_location($ip=NULL, $asArray=FALSE) { if (empty($ip)) { if (!empty($_SERVER['HTTP_CLIENT_IP'])) { $ip = $_SERVER['HTTP_CLIENT_IP']; } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; } else { $ip = $_SERVER['REMOTE_ADDR']; } } elseif (!is_string($ip) || strlen($ip) < 1 || $ip == '127.0.0.1' || $ip == 'localhost') { $ip = '8.8.8.8'; } $url = 'http://ipinfodb.com/ip_locator.php?ip=' . urlencode($ip); $i = 0; $content; $curl_info; while (empty($content) && $i < 5) { $ch = curl_init(); $curl_opt = array( CURLOPT_FOLLOWLOCATION => 1, CURLOPT_HEADER => 0, CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => $url, CURLOPT_TIMEOUT => 1, CURLOPT_REFERER => 'http://' . $_SERVER['HTTP_HOST'], ); if (isset($_SERVER['HTTP_USER_AGENT'])) $curl_opt[CURLOPT_USERAGENT] = $_SERVER['HTTP_USER_AGENT']; curl_setopt_array($ch, $curl_opt); $content = curl_exec($ch); if (!is_null($curl_info)) $curl_info = curl_getinfo($ch); curl_close($ch); } $araResp = array(); if (preg_match('{<li>City : ([^<]*)</li>}i', $content, $regs)) $araResp['city'] = trim($regs[1]); if (preg_match('{<li>State/Province : ([^<]*)</li>}i', $content, $regs)) $araResp['state'] = trim($regs[1]); if (preg_match('{<li>Country : ([^<]*)}i', $content, $regs)) $araResp['country'] = trim($regs[1]); if (preg_match('{<li>Zip or postal code : ([^<]*)</li>}i', $content, $regs)) $araResp['zip'] = trim($regs[1]); if (preg_match('{<li>Latitude : ([^<]*)</li>}i', $content, $regs)) $araResp['latitude'] = trim($regs[1]); if (preg_match('{<li>Longitude : ([^<]*)</li>}i', $content, $regs)) $araResp['longitude'] = trim($regs[1]); if (preg_match('{<li>Timezone : ([^<]*)</li>}i', $content, $regs)) $araResp['timezone'] = trim($regs[1]); if (preg_match('{<li>Hostname : ([^<]*)</li>}i', $content, $regs)) $araResp['hostname'] = trim($regs[1]); $strResp = ($araResp['city'] != '' && $araResp['state'] != '') ? ($araResp['city'] . ', ' . $araResp['state']) : 'UNKNOWN'; return $asArray ? $araResp : $strResp; } 

उपयोग करने के लिए

 detect_location(); // returns "CITY, STATE" based on user IP detect_location('xxx.xxx.xxx.xxx'); // returns "CITY, STATE" based on IP you provide detect_location(NULL, TRUE); // based on user IP // returns array(8) { ["city"] => "CITY", ["state"] => "STATE", ["country"] => "US", ["zip"] => "xxxxx", ["latitude"] => "xx.xxxxxx", ["longitude"] => "-xx.xxxxxx", ["timezone"] => "-07:00", ["hostname"] => "xx-xx-xx-xx.host.name.net" } detect_location('xxx.xxx.xxx.xxx', TRUE); // based on IP you provide // returns array(8) { ["city"] => "CITY", ["state"] => "STATE", ["country"] => "US", ["zip"] => "xxxxx", ["latitude"] => "xx.xxxxxx", ["longitude"] => "-xx.xxxxxx", ["timezone"] => "-07:00", ["hostname"] => "xx-xx-xx-xx.host.name.net" } 

रूबी में … ये कदम हैं

  1. मणि geocoder gem install geocoder
  2. रूबी स्क्रिप्ट में, ये रेखाएँ हैं

    require "geocoder"

    puts Geocoder.address('76.95.251.102'); // आईपी पता तदनुसार बदलें।

  3. शहर, राज्य, ज़िपकोड, देश पाने के लिए स्क्रिप्ट चलाएं

output: Bellflower, CA 90706, United States