5 पॉइंट द्वारा GN⁺ 2023-09-15 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • IP geolocation डेटाबेस IP ranges को देश·शहर·पिन कोड·time zone·coordinates से जोड़ता है, और ipapi.is मुफ्त CSV तथा commercial CSV/MMDB डेटाबेस उपलब्ध कराता है
  • मुफ्त version पूरे IPv4·IPv6 space को cover नहीं करता और accuracy भी कम होती है, लेकिन commercial version API के location field में इस्तेमाल होने वाला पूरा database है और इसे सप्ताह में कम से कम 2 बार update किया जाता है
  • खुद बनाना हो तो WHOIS के geoloc·geofeed, WHOIS address·description fields से location inference, और RIPE IPmap·geofeed-finder·OpenGeoFeed जैसे public projects को साथ में इस्तेमाल करना होगा
  • अगर network कई regions में फैला हो या IP reassign·lease किए जाएँ, तो accuracy डगमगा सकती है; RIPE NCC में जुलाई 2023 तक geoloc coverage 2.3%, और geofeed URL coverage 0.17% के आसपास थी
  • इकट्ठा किए गए data में शहर·देश से coordinates ढूँढने या coordinates से नज़दीकी शहर ढूँढने जैसी enrichment·normalization की ज़रूरत होती है; ipapi.is GeoNames postal code·city·country info files का उपयोग करता है

IP geolocation database की संरचना

  • IP to Geolocation Database एक ऐसा database है जो IP range के हिसाब से geolocation जानकारी store करता है
  • IP address को निम्न जानकारी से geolocate किया जा सकता है
    • देश, शहर, state, पिन कोड
    • time zone
    • latitude, longitude
  • ipapi.is database मुफ्त version और commercial version में बाँटा गया है
    • मुफ्त version CSV format में download किया जा सकता है
    • commercial version CSV और MMDB formats में उपलब्ध है
    • commercial version पूरा IPv4·IPv6 space cover करता है
    • मुफ्त version में IPv4·IPv6 space का केवल एक हिस्सा शामिल है
  • commercial database सप्ताह में कम से कम 2 बार update किया जाता है

मुफ्त और commercial version में अंतर

  • मुफ्त IP geolocation database में commercial version की तुलना में entries कम होती हैं और यह पूरा IPv4·IPv6 address space cover नहीं करता
  • मुफ्त version की geolocation accuracy कम होती है
  • मुफ्त version के मुख्य sources WHOIS data और RFC 8805 Geofeeds हैं
  • commercial database वह पूरा database है जो ipapi.is API के location field में इस्तेमाल होता है
  • commercial version कई sources को मिलाकर location निकालता है
    • WHOIS records
    • ping, traceroute पर आधारित active latency measurements
    • RFC 8805 Geofeeds
    • reverse DNS lookup

Database formats और accuracy field

  • Database files CSV या MMDB format में होती हैं
  • मुख्य fields में IP range, location, coordinates और accuracy साथ में होते हैं
    • ip_version: IPv4 के लिए 4, IPv6 के लिए 6
    • start_ip, end_ip: network range के start और end IP
    • continent, country_code, country, state, city, zip
    • timezone, latitude, longitude
    • accuracy
  • accuracy geolocation जानकारी की अनुमानित accuracy को 1~5 में दिखाता है
    • 1: बहुत high accuracy, आम तौर पर city level पर भरोसेमंद
    • 2: high accuracy, सामान्यतः city level पर भरोसेमंद
    • 3: medium accuracy, city level पर भरोसा करना मुश्किल
    • 4: low accuracy, आम तौर पर country level पर accurate
    • 5: बहुत low accuracy, country level पर accurate होने की उम्मीद

MMDB sample जाँचने का तरीका

  • MMDB sample को curl से download किया जा सकता है
  • mmdbctl से sample पढ़ा जा सकता है
    • mmdbctl read -f json-pretty 0.239.249.144 locationSample.mmdb
  • Example output IP 0.239.249.144 के लिए निम्न जानकारी लौटाता है

IP geolocation के उपयोग और सीमाएँ

  • IP geolocation IP address को latitude·longitude से परिभाषित geographic location पर map करने की प्रक्रिया है
  • Online business और service providers geolocation जानकारी का उपयोग कई उद्देश्यों के लिए करते हैं
    • targeted advertising
    • fraud detection और prevention
    • content localization
    • DRM और compliance
    • network security
    • analytics और insights
  • IP geolocation हमेशा accurate न होने के पीछे structural कारण हैं
    • allocated IPv4·IPv6 networks geographically distributed हो सकते हैं
    • mobile networks या satellite networks जैसे networks कई regions में फैले हुए design किए जाते हैं
    • Regional Internet Registry या IP leasing company जब IP network reallocate·reassign करती है, तो location बदल सकती है
  • IP address geolocation जटिल है, लेकिन IP address API में ऐसी accuracy दे सकता है जिसे ignore करना मुश्किल है

स्क्रैच से बनाते समय ज़रूरी काम

  • Internet का हर IP address किसी विशेष organization के स्वामित्व या management में होता है
  • ARIN, APNIC जैसे Regional Internet Registry(RIR) ownership information को WHOIS database में store करते हैं
  • WHOIS records हमेशा allocated network की geolocation जानकारी शामिल नहीं करते
  • Network-owning organization IP को अपनी पसंद की geographic location पर इस्तेमाल कर सकती है, और third party को allocate कर सकती है या IP blocks lease पर दे सकती है
  • Geolocation जानकारी इकट्ठा करना मोटे तौर पर तीन हिस्सों में बँटता है
    • WHOIS records से geoloc, geofeed जैसे direct geolocation data extract करना
    • WHOIS के postal address, description, country information से indirect location inference
    • RIPE IPmap, geofeed-finder, OpenGeoFeed जैसे public projects का उपयोग

RIR के हिसाब से direct geolocation data

  • RIPE NCC

    • RIPE NCC के inetnum, inet6num objects IP network को organizations को allocate करते हैं
    • Geolocation जानकारी geoloc और geofeed दो attributes के रूप में दी जा सकती है
    • geoloc latitude और longitude को string में रखता है
    • Example: 47.855374 12.132041
    • जुलाई 2023 तक RIPE NCC database में 4,190,644 inetnum और 819,381 inet6num थे
    • इनमें से geoloc attribute शामिल करने वाले objects 114,389 थे, और कुल coverage 2.3% थी
    • geofeed में RFC 8805 format वाली CSV file का URL होता है
    • geofeed URL को dedicated geofeed attribute या remarks attribute के Geofeed {URL} format में record किया जा सकता है
    • जुलाई 2023 तक RIPE NCC में remarks attribute में geofeed URL के 6,643 records और geofeed attribute वाले 2,035 WHOIS records थे
    • geofeed URL coverage 0.17% है, लेकिन एक geofeed file कई networks शामिल कर सकती है, इसलिए यह आंकड़ा misleading हो सकता है
  • ARIN

    • ARIN NetRange object के Comment attribute में geofeed URL डालकर geolocation जानकारी उपलब्ध कराता है
    • dedicated geofeed attribute जोड़ने का request आया था, लेकिन Comment या Remark attribute पर्याप्त हैं, इस आधार पर reject कर दिया गया
    • ARIN database, RIPE NCC के विपरीत, geoloc attribute का उपयोग नहीं करता
  • LACNIC

    • LACNIC geolocation support में ARIN से ज्यादा सक्रिय है
    • LACNIC एक Geofeed Service चलाता है जिससे members अपने IP addresses की geolocation जानकारी दे सकते हैं
    • Public data milacnic.lacnic.net/lacnic/geofeeds पर उपलब्ध है
    • LACNIC WHOIS database default रूप से city-level geolocation जानकारी देता है
    • LACNIC database को FTP server ftp.lacnic.net/lacnic/dbase/ से download किया जा सकता है
  • AFRINIC और APNIC

    • AFRINIC ने बताया है कि वह geolocation service नहीं देता और geolocation providers के साथ उसका कोई official·operational relationship भी नहीं है
    • AFRINIC, RIPE NCC की तरह remarks attribute में geofeed URL के उपयोग को support करता है
    • APNIC, RIPE NCC जैसी ही लगभग समान level की geolocation support देता है
      • geoloc attribute
      • remarks attribute में geofeed URL
    • APNIC geolocation support बेहतर करने को लेकर खुला रुख दिखाता है

WHOIS से location infer करने का तरीका

  • WHOIS का मुख्य उद्देश्य IP addresses या AS numbers जैसे Internet numbers के owner organizations की registrant information देना है
  • WHOIS में अक्सर organization के headquarters या administrative location का postal address और country शामिल होता है
  • Organization का postal address कभी-कभी IP address के उपयोग वाली location से मेल खाता है, लेकिन हमेशा नहीं
  • बड़े organizations का administrative address उस organization के सभी IP addresses की location से match नहीं कर सकता
  • RIPE NCC में inference

    • RIPE NCC के inetnum, inet6num objects में उपयोग योग्य attributes ये हैं
      • country: केवल country-level accuracy देता है
      • descr: network description, जिसमें location·address information हो सकती है
      • netname: parse करना कठिन और reliability कम
      • address: strictly speaking role object का attribute है और postal address रखता है
    • country attribute ISO 3166-2 letter country code पहचानता है, लेकिन यह नहीं बताता कि वह country headquarters location है, data center location है या end-user location
    • descr attribute free-form description है, लेकिन organizations कभी-कभी network location और address information डालते हैं, इसलिए geolocation inference में उपयोगी है
    • address high accuracy दे सकता है, लेकिन अगर role object का postal address IP address usage location जैसा मान लिया जाए, तो गलती हो सकती है
  • ARIN में inference

    • ARIN में निम्न WHOIS attributes छोटी organizations या एक location में concentrated organizations के लिए अपेक्षाकृत भरोसेमंद हो सकते हैं
      • Address
      • City
      • StateProv
      • PostalCode
      • Country
    • Universities, hospitals, government departments जैसी organizations कभी-कभी NetRange object के IP addresses को administrative postal address वाली ही location पर इस्तेमाल करती हैं
    • जब बड़े enterprises या nationwide organizations के पास कई NetRange हों, तो administrative postal address actual IP usage location से match नहीं कर सकता
    • Google Fiber example में WHOIS address इस्तेमाल करने पर Mountain View, California मिलता है, लेकिन अधिकतर geolocation providers उस IP को Texas के San Antonio में locate करते हैं
  • LACNIC, AFRINIC, APNIC

    • LACNIC WHOIS database में geolocation देता है, इसलिए अलग inference की ज़रूरत नहीं होती
    • AFRINIC RIPE NCC जैसा ही WHOIS database format इस्तेमाल करता है, इसलिए वही principles लागू किए जा सकते हैं
      • country, descr
      • role object का address
    • APNIC भी RIPE NCC जैसा ही WHOIS database format इस्तेमाल करता है, इसलिए वही principles लागू होते हैं

Public geolocation projects

  • RIPE IPmap

    • RIPE IPmap core Internet infrastructure की geolocation data देने वाला API था
    • लगता है कि अब इसे maintain नहीं किया जाता, और 2019 के बाद कोई नया contribution नहीं दिखता
    • RIPE IPmap कई engines से IP addresses की geolocation infer करता है
    • latency और single-radius engines RIPE Atlas measurements का उपयोग करके IP address का latency radius देते हैं
    • minimum RTT measurement fiber-optic medium में light की speed की वजह से possible maximum distance की upper bound देता है
    • reverse-dns engine PTR records के hostname से city-level geolocation extract करता है
    • RIPE IPmap database https://ftp.ripe.net/ripe/ipmap/ से download किया जा सकता है
    • Project की accuracy और coverage, पुराने maintainer website के हिसाब से, काफी गिर चुकी है
  • geofeed-finder

    • geofeed-finder WHOIS data में geofeed files खोजने और fetch करने वाला open source tool है
    • यह tool prefix ownership verification, cache management और ISO code validation भी करता है
    • RFC 9092 के अनुसार WHOIS data से geofeed extract कर सकता है
    • पूरे network में geofeed information की coverage बहुत कम है, इसलिए practical usefulness limited है
  • LACNIC Geofeeds Service और OpenGeoFeed

    • LACNIC Geofeeds Service LACNIC members के बड़े हिस्से की geolocation information देता है
    • Data milacnic.lacnic.net/lacnic/geofeeds से public download के लिए उपलब्ध है
    • RIR level पर geolocation information collect कर सकने के लिहाज़ से यह important project है
    • OpenGeoFeed RFC 9092 के अनुसार self-published public geofeeds को इकट्ठा करने वाला open source project है
    • OpenGeoFeed known public geofeed files वाली single file opengeofeed.org/feed/public.csv देता है
    • OpenGeoFeed promising है, लेकिन geofeed coverage up to date नहीं लगती और data sources के बार-बार update होने की संभावना कम है

Data enrichment और normalization

  • कई sources से इकट्ठा किया गया raw geolocation data incomplete या inconsistent हो सकता है
  • ऐसे records बन सकते हैं जिनमें country·city information तो है लेकिन coordinates नहीं, और ऐसे भी जिनमें coordinates तो हैं लेकिन country·city information नहीं
  • अगर raw record में केवल country शामिल हो, तो accuracy country level से आगे जाना मुश्किल है
  • Collected data को common format में enrich·transform करना होगा
  • Data enrichment open source geographic databases का उपयोग करके किया जाता है
  • Enrichment work दो cases में बँटता है
    • city·country pair से latitude और longitude ढूँढना
    • latitude·longitude से सबसे नज़दीकी city और country ढूँढना
  • ipapi.is geolocation information enrichment के लिए निम्न databases का उपयोग करता है
    • GeoNames Postal Code Files: कानूनी कारणों से कुछ देशों को छोड़कर दुनिया भर के postal codes
    • cities500.zip: 500 से अधिक आबादी वाले शहर
    • countryInfo.txt: राजधानी, आबादी, continent आदि country metadata

1 टिप्पणियां

 
GN⁺ 2023-09-15
Hacker News की राय
  • IPinfo से जुड़ने से पहले से ही मैं लेख पढ़ना पसंद करता था, और IPinfo में हम IP geolocation data service देते हैं
    हम यहां बताए गए तरीके से ज्यादा विस्तृत methodology इस्तेमाल करते हैं, और public datasets का भी कुछ इस्तेमाल करते हैं, लेकिन core location data ping-based measurements से आता है
    दुनिया भर के कई servers से IP addresses पर ping भेजते हैं, और multilateration से location पहचानते हैं। किसी एक server से ping केवल 1-dimensional जानकारी देता है कि address किसी खास radius के भीतर कहीं है, लेकिन कई servers से इसे दोहराने पर location धीरे-धीरे ज्यादा precise हो जाती है
    पर्याप्त measurements होने पर postcode-level के करीब precision तक पहुंचा जा सकता है, और इस समय दुनिया भर में हमारे 600 से ज्यादा probing servers हैं और हम उन्हें लगातार बढ़ा रहे हैं
    public data पुराना होता है या अक्सर update नहीं होता, आम तौर पर उपयोगी होने लायक precise नहीं होता, और अक्सर सिर्फ बड़े IP ranges या organization-level locations ही देता है
    साथ ही public datasets में verification process नहीं होता। IPv4 trading और VPN services बढ़ने के साथ गलत जानकारी inject होने के मामले भी देखे हैं, इसलिए IP location correction reports का स्वागत है, लेकिन हम उन्हें अनिवार्य रूप से verify करते हैं
    probing network चलाने के अनुभव से कहूं तो, Central Africa के किसी देश की तुलना में New York में server खरीदना कहीं ज्यादा आसान और सस्ता है। किसी IP address की location उस IP द्वारा दी जा सकने वाली value पर बड़ा असर डालती है
    projects में इस्तेमाल करने के लिए free IP-to-Country ASN database भी देते हैं: https://ipinfo.io/developers/ip-to-country-asn-database

    • जिज्ञासा है कि आप किस लेख के fan हैं। https://incolumitas.com/ वाले लेख के, या https://ipapi.is/ वाले?
      latency triangulation का idea अच्छा है। VPN और proxy detection जैसे कई कामों के लिए latency information इस्तेमाल करता रहा हूं, लेकिन नहीं सोचा था कि उससे इतनी accurate location मिल सकती है
      600 servers से latency triangulation करने पर काफी अच्छा approximation मिलना चाहिए, और यह impressive है
      हालांकि कुछ बातें जानना चाहूंगा। कुछ ISPs ICMP traffic को low priority देते हैं या उसकी performance घटाते हैं, उससे कैसे निपटते हैं; सभी IPv4 को geolocate करने के लिए अरबों addresses पर लगातार ping भेजना होगा, तो क्या हर allocated inetnum/NetRange में से सिर्फ कोई random IP measure करते हैं; ज्यादातर IP addresses ICMP का जवाब नहीं देते, तो क्या target के सामने वाला router खोजकर उस router की location पकड़ते हैं
    • Anycast addresses के लिए ICMP response time से “location” पकड़ना मुश्किल है, और कुछ के साथ अलग logical location जुड़ी होती है। उदाहरण https://blog.cloudflare.com/icloud-private-relay/ में देख सकते हैं
    • IPinfo का fan और customer होने के नाते, हम login alert emails में “अभी-अभी Berlin, Germany से login हुआ है। अगर यह आप नहीं हैं, तो यहां click करें” जैसी लाइन डालने के लिए API इस्तेमाल करते हैं
      customer audit logs में country data देने, spam prevention और fraud detection में भी इसका इस्तेमाल कर रहे हैं
    • क्या आपने database को Parquet format में download करने की सुविधा देने पर विचार किया है?
      इससे file को S3, Google Cloud वगैरह पर copy करके कई tools से सीधे query किया जा सकेगा। CSV से भी संभव है, लेकिन उतना smooth नहीं है
    • मुझे जिज्ञासा थी कि मौजूदा information sources न होने पर IP address की location कैसे पता लगाई जाती है, और यह explanation ठीक वही है जो मैं जानना चाहता था, इसलिए बहुत दिलचस्प लगा
  • अगर खुद implement नहीं करना चाहते, तो एक simple Cloudflare Worker से Cloudflare से यह मुफ्त में करवाया जा सकता है। हर Cloudflare request में approximate IP location information शामिल होती है
    Cloudflare Worker पर चल रहे इस URL पर request भेज सकते हैं। globally low latency मिलनी चाहिए: https://www.edenmaps.net/iplocation
    छोटे apps में इस्तेमाल करना ठीक है, बस दिन में 10 million requests न भेजें — इतनी ही बात है

    • किसी third party के साथ यह share करने के बजाय कि कौन-से IP addresses ने आपकी service access की हो सकती है, IP database download करके इस्तेमाल करना बेहतर है
    • यह दिखा रहा है कि मैं Somalia के coast से 100km दूर हूं, जबकि असल में Brussels, Belgium में हूं। privacy protection के लिए धन्यवाद :D
    • क्या किसी को पता है कि Worker requests में Cloudflare geolocation कितनी accurate होती है?
    • शानदार। अगर संभव हो तो क्या आप वह code open source कर सकते हैं?
    • मैं Munich में हूं, लेकिन Cloudflare उत्तर में 730km दूर किसी random forest की ओर इशारा कर रहा है
  • मैं ऐसे देश में रहता हूं जहां स्थानीय भाषा मेरी मातृभाषा नहीं है, इसलिए मुझे वे websites बहुत नापसंद हैं जो IP location से language guess करके उसे जबरदस्ती apply कर देती हैं
    browser language header बहुत साफ भेजता है, फिर भी वे उसे ignore करके lazy assumption के आधार पर language तय कर देते हैं

    • मैं IP geolocation service में काम करता हूं, लेकिन मुझे भी यह नापसंद है
      industry में इसे “web experience personalization” कहते हैं, लेकिन यह परेशान करने वाला तरीका है। मैंने कभी किसी को ऐसा करने की सलाह नहीं दी
      अगर IP geolocation से website personalize करनी हो, तो tax जैसी चीजें, shipping cost, या country selection dropdown में user का country ऊपर रखना — बस इतना ही best है
      इसके अलावा ज्यादा कुछ याद नहीं आता। translation आम तौर पर ठीक से काम नहीं करती और सिर्फ बाधा बनती है। website की niyat अच्छी हो तब भी Google Translate से local-language version बनाना अच्छा idea नहीं है
    • मैं US में रहता हूं और सभी devices पर IP geolocation गलत regions दिखाती है
      रोजमर्रा के internet experience को बिगाड़ने वाली technologies में ऐसी databases से कम ही चीजें हैं
      काश ये बस खत्म हो जाएं
      websites हर बार गलत guess करने और correction flow को कई links और page loads के पीछे छिपाने के बजाय पहले load पर postcode पूछ सकती हैं
      साथ ही database को सुधारकर “right answer” या “better answer” बनाने का कोई तरीका भी नहीं है। क्योंकि websites से अपनी current location इस्तेमाल करवाने की इच्छा शायद ही कभी होती है
      आम तौर पर मैं उस जगह के store inventory देखता हूं जहां आगे जाने वाला हूं। यह पूरा field असल में एक ill-defined problem हल करने की कोशिश कर रहा है
    • इसी frustration के चलते मैंने इस पर एक लेख भी लिखा: https://www.fer.xyz/2021/04/i18n
  • उपयोग और जरूरी accuracy पर निर्भर करता है
    जियोलोकेशन सर्विस बनाने का सबसे अच्छा तरीका है 1 अरब डिवाइस हासिल करना, जो अपनी location और IP एक साथ रिपोर्ट करें। असल में Apple और Google इसी स्थिति में हैं
    इन्हें IP और location के लगातार updates मिलते रहते हैं, इसलिए इनके पास दुनिया के सबसे अच्छे जियोलोकेशन databases हैं
    मुख्य बात यह है कि ऐसा app बनाया जाए जिसमें लोग स्वेच्छा से location दें, और उस app को बहुत से लोग इस्तेमाल करें। इसलिए आजकल हर app location permission मांगता है
    Foursquare की दिशा सही थी, लेकिन वह बहुत आगे निकल गया था

    • 10 साल पहले भी Apple की internal privacy policy Apple को सटीक latitude/longitude collect करने से रोकती थी
      किसी खास IP या subnet के लिए कौन-सा endpoint सबसे अच्छा है, यह तय करने के लिए HTTP session telemetry का इस्तेमाल करना पड़ता था, और उसके नतीजे में वास्तविक conditions पर आधारित अपना GeoIP जैसा database बना
      फिर भी privacy की वजह से उसे जितना हो सके उतने अस्थायी रूप से ही रखना पड़ता था। Apple Maps के reverse geocoding results को पास के restaurants खोजने जैसे real-time user request के context के बाहर इस्तेमाल या record नहीं किया जा सकता था
  • कुछ हद तक जुड़ी बात के तौर पर, Google Maps यह सीख सकता है कि आप map में किस location को explore करते हैं, और उससे IP location का अंदाजा लगा सकता है
    किसी खास location को पर्याप्त बार देखने पर, सभी cookies मिटा देने के बाद भी Google Maps खोलते समय वह location default location के रूप में इस्तेमाल होती है
    Google Maps इस्तेमाल करते हुए यह देखा, और यह सोचकर privacy के लिहाज से थोड़ी चिंता होती है कि कई लोग एक ही IP address share कर सकते हैं

    • उल्टा होने की संभावना ज्यादा लगती है। लगता है Google के पास बहुत अच्छा IP geolocation database है, इसलिए जब दूसरी जानकारी नहीं होती तो वह explore location में उसी का इस्तेमाल करता है
    • इसलिए कभी-कभी मुझे उस नदी पर दिखाता है जहां मैं अक्सर नाव खेता हूं, और कभी-कभी उस जगह पर जहां मेरा summer cottage है
    • Google Workspace और data localization, law enforcement agencies की jurisdiction तय करने में भी इसका इस्तेमाल होता है
  • दिलचस्प है, लेकिन लगता नहीं कि असल geolocation calculation इसी तरह होती है
    ARIN/RIPE data देश से आगे के स्तर पर पर्याप्त accurate नहीं होता, इसलिए उपयोगी नहीं है
    commercial geolocation client IP को ज्ञात physical location से correlate करता है। उदाहरण के लिए WiFi AP जानकारी या user को भेजा गया parcel। कम से कम दशकों से मैंने यही सुना है

    • मैं ad tech क्षेत्र में काम करता हूं, और geolocation इसी तरह handle की जाती है
      device geolocation भी होती है, लेकिन अगर user GPS data share करने की consent नहीं देता तो targeting के लिए सिर्फ IP address इस्तेमाल होता है। आम provider MaxMind है, जो local host करके query करने के लिए database distribute करता है
  • comments का माहौल काफी cynical है, लेकिन व्यक्तिगत रूप से मुझे यह वाकई दिलचस्प लगा
    अपनी पहली job में database में PostGIS और location-based search जोड़ने का काम याद आ गया। उस समय यह address और postal code पर आधारित था

    • MySQL में भी यह तुलनात्मक रूप से आसानी से किया जा सकता है। एक trick है circle के बजाय square इस्तेमाल करना, जिससे काफी math calculations से बचा जा सकता है
  • काफी समय पहले मैंने http://www.hostip.info बनाया था। यह IP address locations को community-driven तरीके से इकट्ठा करने वाली service थी, कुछ इस तरह: “क्या यह estimate गलत है? कृपया सुधारें”
    आखिरी बार जब देखा था, शायद करीब 10 साल पहले, देश लगभग perfect था, region अधूरा था, और city coin toss से बेहतर स्तर पर थी। सारा data free है
    पता नहीं site पर अभी भी है या नहीं, लेकिन known addresses या recent queries दिखाने के लिए एक rotating 3D cube भी था। x, y, z address के पहले तीन octets थे, और country·continent जैसे groups के हिसाब से अलग colors इस्तेमाल होते थे
    यह इतना पुराना है कि Java applet में लिखा गया था। अगर दोबारा बनाता तो शायद WebGL में करता
    बहुत पहले इसे बेच दिया था, लेकिन यह शर्त लगाई थी कि data हमेशा free रहना चाहिए। शुरुआत में email से आया offer scam जैसा लगा इसलिए भरोसा नहीं हुआ, लेकिन escrow.com के जरिए सब ठीक चला, और मुझे लगता है दोनों पक्ष संतुष्ट रहे। अब यह लगभग 20 साल पहले की बात है

  • पहले आए ping-based GeoIP का आधुनिक version लगता है: https://github.com/Ne00n/yammdb

    • यह तो बस पहले से compiled mmdb file से link होता है, इसलिए अगर implementation public नहीं है तो इसमें ऐसा कुछ भी relevant नहीं है जिसे “आधुनिक” implementation कहा जा सके
  • डेटा सेंटर IP को बहुत मोटे तौर पर भी geolocate करने के तरीके पर सुझाव जानना चाहता/चाहती हूँ
    मैं traceroute डेटा का विश्लेषण कर रहा/रही हूँ और शुरुआत व अंत की लोकेशन पता है, लेकिन रुचि बीच के हिस्से में है
    उदाहरण के लिए, नोड hostname में मौजूद airport code से कुछ जानकारी अनुमानित की जा सकती है
    किसी खास नोड की स्थिति खराब नहीं है, यह मानकर औसत RTT समय से लोकेशन का अनुमान लगाना भी संभव लगता है
    मुश्किल उदाहरण IP 193.142.125.129, 129.250.6.113, 129.250.3.250 हैं। ये UK traceroute में दिखते हैं और इन्हें London में माना जाता है, लेकिन geolocation परिणाम पूरी दुनिया में बिखरे हुए हैं

    • ये IP Google और NTT के स्वामित्व में हैं, और दोनों बड़े अंतरराष्ट्रीय नेटवर्क चलाते हैं, इसलिए चाहें तो IP को दुनिया में कहीं भी फिर से जगह दे सकते हैं। इसलिए lookup-आधारित geolocation, जैसा कि आपने देखा, अस्थिर है
      उन IP तक traceroute में नेटवर्क London की ओर जाता हुआ दिखता है
      Google IP ping का जवाब नहीं देता, लेकिन NTT/Verio वाला जवाब देता है। London-आधारित hosting से ping करने पर संभवतः single-digit milliseconds में response मिलेगा, और तब London से दूरी की ऊपरी सीमा तय की जा सकती है
      UK के भीतर दूसरी hosting और चैनल के उस पार से भी ping करके देखा जा सकता है कि सबसे कम ping London hosting से आता है या नहीं। हालांकि connectivity सिर्फ London के जरिए हो सकती है और वास्तविक लोकेशन कहीं और भी हो सकती है, इसलिए पूरी तरह पता नहीं चल सकता
      दूसरे observation points से भी जांचना चाहिए कि यह anycast तो नहीं है। दुनिया के अधिकांश नेटवर्क से 8.8.8.8 को ping करने पर नजदीकी जगह मिलती है, लेकिन इन IP के लिए Seattle क्षेत्र से भी traceroute London जाता है, इसलिए कम-से-कम अभी इनके anycast न होने की संभावना ज्यादा है
      अगर आपके पास दुनिया भर की hosting नहीं है, तो ऐसे ping कभी-कभी कर पाने वाले अच्छी तरह connected नेटवर्क के public looking glass खोजे जा सकते हैं
    • TULIP आशाजनक लगा था
      इसमें लिखा है, “TULIP का उद्देश्य उन target hosts की लोकेशन पता करना है जिन्हें IP नाम या address से पहचाना जाता है, इसके लिए अच्छी तरह ज्ञात लोकेशन वाले reference landmark hosts से target तक ping RTT delay measurements का उपयोग किया जाता है”
      https://tulip.slac.stanford.edu/
      लेकिन लगता है कि publish किया गया endpoint dead है
    • https://ensa.fi/papers/geolocation_imc17.pdf में कुछ ideas हैं
      ज्ञात लोकेशन वाले RIPE Atlas probes से उस IP तक RTT प्राप्त करने का तरीका आपके बताए idea के करीब है, और शायद किसी भी हाल में सबसे अच्छा तरीका है
    • अगर आप कोई popular app या web service चलाते हैं, तो आपके पास अपना AS number होगा, और उस AS के तहत कुछ IP blocks खरीदकर उन्हें दुनिया भर के कई owned/leased data centers से advertise करेंगे
      ऐसे BGP advertisements अलग-अलग locations पर अलग upstream ISPs के जरिए निकलेंगे
      अगर किसी खास location से निकले advertisement का upstream local ISP है, तो कुछ हद तक अनुमान लगाया जा सकता है कि वह data center उसी region में है। लेकिन अगर वह Tier 1 ISP है जो global direct connectivity देता है, तो यह अनुमान भी मुश्किल हो जाता है
      BGP relationships bgp.tools जैसे looking glass tools में देखे जा सकते हैं: https://bgp.tools/prefix/193.142.125.0/24#connectivity
      अगर दुनिया भर में फैले ज्ञात लोकेशन वाले कई probes से traceroute चला सकें, तो intermediate router interfaces के fixed IP देखकर triangulation किया जा सकता है
      हालांकि अगर Cloudflare जैसे CDN का इस्तेमाल करके अपने IP block को 200 से ज्यादा PoP से advertise कराएं, और उनके private network के जरिए दुनिया भर के data centers तक traffic ले जाएं, तो यह तरीका भी टूट जाता है