geolocation address आईपी पते द्वारा देश की पहचान करना




my ip address location (11)

अमेज़न के CloudFront सामग्री वितरण नेटवर्क को अब हेडर के रूप में इस जानकारी को पास करने के लिए कॉन्फ़िगर किया जा सकता है। अमेज़ॅन के आकार को देखते हुए (वे बड़े और स्थिर हैं, कहीं भी नहीं जा रहे हैं) और यह कोड पर कॉन्फ़िगरेशन है (कोई तृतीय-पक्ष एपीआई सीखने के लिए या कोड बनाए रखने के लिए नहीं), सभी मानते हैं कि यह सबसे अच्छा विकल्प है।

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

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

https://aws.amazon.com/blogs/aws/enhanced-cloudfront-customization/

भू-लक्ष्यीकरण - क्लाउडफ्रंट उपयोगकर्ता के मूल देश का पता लगाएगा और CloudFront-Viewer-Country हेडर में आपको काउंटी कोड के साथ पास करेगा। आप प्रत्येक देश के लिए विशिष्ट URL का उपयोग किए बिना अपनी प्रतिक्रियाओं को अनुकूलित करने के लिए इस जानकारी का उपयोग कर सकते हैं।

https://code.i-harness.com

क्या सिर्फ एक आईपी पते को देखकर देश का नाम पता लगाने का एक तरीका है? मेरा मतलब है, क्या देशों में विशिष्ट आईपी पते हैं? उदाहरण के लिए, ऑस्ट्रेलिया में केवल 123.45.56.89 - 231.54.65.98 की श्रेणी में आईपी पते हो सकते हैं 123.45.56.89 - 231.54.65.98 (सिर्फ एक उदाहरण)


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

आप क्या चाहते हैं, इसे पूरा करने के लिए, आपको किसी डेटाबेस या जियोकास्टेशन एपीआई के साथ किसी देश का आईपी पता मैप करने के लिए अप-टू-डेट लुकअप रखना होगा। यहाँ एक उदाहरण है:

> https://ipapi.co/8.8.8.8/country
US

> https://ipapi.co/8.8.8.8/country_name
United States

या आप IP पते के लिए पूर्ण स्थान प्राप्त करने के लिए पूर्ण API का उपयोग कर सकते हैं

https://ipapi.co/8.8.8.8/json

{
    "ip": "8.8.8.8",
    "city": "Mountain View",
    "region": "California",
    "region_code": "CA",
    "country": "US",
    "country_name": "United States",
    "continent_code": "NA",
    "postal": "94035",
    "latitude": 37.386,
    "longitude": -122.0838,
    "timezone": "America/Los_Angeles",
    "utc_offset": "-0800",
    "country_calling_code": "+1",
    "currency": "USD",
    "languages": "en-US,es-US,haw,fr",
    "asn": "AS15169",
    "org": "Google Inc."
}

आप https://ip-api.io - जियो स्थान एपि का उपयोग करके देख सकते हैं जो अन्य आईपी सूचनाओं के बीच देश को लौटाता है।

उदाहरण के लिए Node.js के साथ

const request = require('request-promise')

request('http://ip-api.io/api/json/1.2.3.4')
  .then(response => console.log(JSON.parse(response)))
  .catch(err => console.log(err))

नहीं, आप नहीं कर सकते - आईपी पते समय-समय पर वास्तविक और पुन: असाइन किए जाते हैं, इसलिए समय के साथ आईपी के स्थान की मैपिंग भी बदल जाएगी।

यदि आप उस स्थान का पता लगाना चाहते हैं जो वर्तमान में आपके लिए मैप किए गए आईपी पते को जियोलोकेशन डेटाबेस डाउनलोड कर सकता है, जैसे कि मैक्समाइंड से जियोलाइट , या http://ipinfo.io (मेरी खुद की सेवा) जैसी एपीआई का उपयोग करें जो भी देगा आप अतिरिक्त विवरण:

$ curl ipinfo.io/8.8.8.8
{
  "ip": "8.8.8.8",
  "hostname": "google-public-dns-a.google.com",
  "loc": "37.385999999999996,-122.0838",
  "org": "AS15169 Google Inc.",
  "city": "Mountain View",
  "region": "California",
  "country": "US",
  "phone": 650
}

मुझे लगता है कि आप जो देख रहे हैं वह एक आईपी जियोलोकेशन डेटाबेस या सेवा प्रदाता है। वहाँ बहुत से हैं और कुछ स्वतंत्र हैं (आप जो भुगतान करते हैं)।

हालाँकि मैंने पहले इस सेवा का उपयोग नहीं किया है, यह वास्तविक समय में होने का दावा करता है। https://kickfire.com/kf-api

लेकिन बस आईपी जियो पर एक Google खोज करें और आपको अपनी आवश्यकता से अधिक परिणाम मिलेंगे।


मैं उपरोक्त उत्तरों से सहमत हूं, देश को आईपी पते से प्राप्त करने का सबसे अच्छा तरीका मैक्समाइंड है।

यदि आप java में कोड लिखना चाहते हैं, तो आप अर्थात् geoip-api-1.2.10.jar और geoIP dat files (GeoIPCity.dat) का उपयोग करना चाह सकते हैं, जो कि google के माध्यम से पाया जा सकता है।

निम्नलिखित कोड आपके लिए स्थान से संबंधित लगभग सभी जानकारी प्राप्त करने के लिए उपयोगी हो सकते हैं, मैं भी उसी कोड का उपयोग कर रहा हूं।

public static String getGeoDetailsUsingMaxmind(String ipAddress, String desiredValue) 
    {
        Location getLocation;
        String returnString = "";
        try
        {
            String geoIPCity_datFile = System.getenv("AUTOMATION_HOME").concat("/tpt/GeoIP/GeoIPCity.dat");
            LookupService isp = new LookupService(geoIPCity_datFile);
            getLocation = isp.getLocation(ipAddress);
            isp.close();

            //Getting all location details 
            if(desiredValue.equalsIgnoreCase("latitude") || desiredValue.equalsIgnoreCase("lat"))
            {
                returnString = String.valueOf(getLocation.latitude);
            }
            else if(desiredValue.equalsIgnoreCase("longitude") || desiredValue.equalsIgnoreCase("lon"))
            {
                returnString = String.valueOf(getLocation.longitude);
            }
            else if(desiredValue.equalsIgnoreCase("countrycode") || desiredValue.equalsIgnoreCase("country"))
            {
                returnString = getLocation.countryCode;
            }
            else if(desiredValue.equalsIgnoreCase("countryname"))
            {
                returnString = getLocation.countryName;
            }
            else if(desiredValue.equalsIgnoreCase("region"))
            {
                returnString = getLocation.region;
            }
            else if(desiredValue.equalsIgnoreCase("metro"))
            {
                returnString = String.valueOf(getLocation.metro_code);
            }
            else if(desiredValue.equalsIgnoreCase("city"))
            {
                returnString = getLocation.city;
            }
            else if(desiredValue.equalsIgnoreCase("zip") || desiredValue.equalsIgnoreCase("postalcode"))
            {
                returnString = getLocation.postalCode;
            }
            else
            {
                returnString = "";
                System.out.println("There is no value found for parameter: "+desiredValue);
            }

            System.out.println("Value of: "+desiredValue + " is: "+returnString + " for ip address: "+ipAddress);
        }
        catch (Exception e) 
        {
            System.out.println("Exception occured while getting details from max mind. " + e);
        }
        finally
        {
            return returnString;
        }
    }

यह इतना आसान नहीं है। आईपी ​​आदतों को देशों को नहीं सौंपा जाता है, लेकिन कंपनियों और संगठनों को।

लेकिन शायद यह आपकी मदद कर सकता है: http://www.maxmind.com/app/geolitecountry


लुकअप करने के लिए आप ipdata.co का उपयोग कर सकते हैं

यह उत्तर एक 'परीक्षण' एपीआई कुंजी का उपयोग करता है जो बहुत सीमित है और केवल कुछ कॉल के परीक्षण के लिए है। अपनी खुद की फ्री एपीआई कुंजी के लिए साइन अप करें और विकास के लिए प्रतिदिन 1500 अनुरोध प्राप्त करें।

curl https://api.ipdata.co/23.221.76.66?api-key=test

इप्टा के पास विश्व स्तर पर 10 समापन बिंदु हैं जिनमें से प्रत्येक में प्रति सेकंड 10,000 अनुरोधों को संभालने में सक्षम है!

देता है

{
    "ip": "23.221.76.66",
    "city": "Cambridge",
    "region": "Massachusetts",
    "region_code": "MA",
    "country_name": "United States",
    "country_code": "US",
    "continent_name": "North America",
    "continent_code": "NA",
    "latitude": 42.3626,
    "longitude": -71.0843,
    "asn": "AS20940",
    "organisation": "Akamai International B.V.",
    "postal": "02142",
    "calling_code": "1",
    "flag": "https://ipdata.co/flags/us.png",
    "emoji_flag": "\ud83c\uddfa\ud83c\uddf8",
    "emoji_unicode": "U+1F1FA U+1F1F8",
    "is_eu": false,
    "languages": [
        {
            "name": "English",
            "native": "English"
        }
    ],
    "currency": {
        "name": "US Dollar",
        "code": "USD",
        "symbol": "$",
        "native": "$",
        "plural": "US dollars"
    },
    "time_zone": {
        "name": "America/New_York",
        "abbr": "EDT",
        "offset": "-0400",
        "is_dst": true,
        "current_time": "2018-04-19T06:32:30.690963-04:00"
    },
    "threat": {
        "is_tor": false,
        "is_proxy": false,
        "is_anonymous": false,
        "is_known_attacker": false,
        "is_known_abuser": false,
        "is_threat": false,
        "is_bogon": false
    }
}⏎ 

हाँ, आप https://lite.ip2location.com/ip-address-ranges-by-country से देश द्वारा IP पता श्रेणी डाउनलोड कर सकते हैं

आप देख सकते हैं कि प्रत्येक देश में कई श्रेणियां हैं और अक्सर परिवर्तन होते हैं।


हां, आपके उल्लेख के अनुसार देशों के पास विशिष्ट आईपी एड्रेस रेंज हैं।

उदाहरण के लिए, ऑस्ट्रेलिया 16777216 - 16777471 के बीच है। चीन 16777472 - 16778239 के बीच है। लेकिन एक देश में कई रेंज हो सकती हैं। उदाहरण के लिए, ऑस्ट्रेलिया में यह सीमा 16778240 - 16779263 के बीच भी है

(ये IP पते के संख्यात्मक रूपांतरण हैं। यह निर्भर करता है कि आप IPv4 या IPv6 का उपयोग करते हैं)

इन श्रेणियों के बारे में अधिक जानकारी यहाँ देखी जा सकती है: http://software77.net/cidr-101.html

हमें अपनी वेबसाइट के आगंतुकों के आईपी पते मिलते हैं और कभी-कभी किसी विशिष्ट देश के लिए प्रासंगिक अभियान बनाना चाहते हैं। हम बल्क रूपांतरण टूल का उपयोग कर रहे थे, लेकिन बाद में एक एक्सेल फाइल में नियमों को परिभाषित करने और इसे टूल में बदलने का फैसला किया। और हमने इस एक्सेल टेम्पलेट का निर्माण किया है: https://www.someka.net/excel-template/ip-to-country-converter/

अब हम अपनी जरूरतों के लिए इसका इस्तेमाल करते हैं और इसे बेचते भी हैं। मैं नहीं चाहता कि यह एक बिक्री पिच हो, लेकिन जो लोग इसका आसान समाधान खोज रहे हैं, वे इससे लाभान्वित हो सकते हैं