কীভাবে জাভাস্ক্রিপ্ট ব্যবহার করে ক্লায়েন্টের আইপি ঠিকানা পাবেন?


560

আমার কোনওভাবে জাভাস্ক্রিপ্ট ব্যবহার করে ক্লায়েন্টের আইপি ঠিকানা পুনরুদ্ধার করতে হবে; কোনও সার্ভার সাইড কোড, এমনকি এসএসআই নয়।

যাইহোক, আমি একটি ফ্রি তৃতীয় পক্ষের স্ক্রিপ্ট / পরিষেবা ব্যবহারের বিপক্ষে নই।

উত্তর:


770

আমি এমন একটি ওয়েব পরিষেবা ব্যবহার করব যা জেএসএনকে ফিরিয়ে দিতে পারে (জিনিসগুলি আরও সহজ করার জন্য jQuery সহ)। নীচে সমস্ত ফ্রি অ্যাক্টিভ আইপি লুকআপ পরিষেবাদি আমি খুঁজে পেতে পারি এবং তাদের যে তথ্য ফিরে আসে সেগুলি দেওয়া আছে। যদি আপনি আরও কিছু জানেন তবে দয়া করে একটি মন্তব্য যুক্ত করুন এবং আমি এই উত্তরটি আপডেট করব।


ক্লাউডফ্লেয়ার

এটি ব্যবহার করে দেখুন: https://www.cloudflare.com/cdn-cgi/trace

// If your site is on Cloudflare, then you can use '/cdn-cgi/trace' instead
$.get('https://www.cloudflare.com/cdn-cgi/trace', function(data) {
    console.log(data)
})

রিটার্নস:

fl=4f422
h=www.cloudflare.com
ip=54.193.27.106
ts=1575967108.245
visit_scheme=https
uag=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36 Hypothesis-Via
colo=SJC
http=http/1.1
loc=US
tls=TLSv1.3
sni=plaintext
warp=off

সীমাবদ্ধতা:

  • সরল পাঠ্য ফেরত দেয়

ডিবি-আইপি

এটি ব্যবহার করে দেখুন: http://api.db-ip.com/addrinfo?api_key= < আপনার এপিআই কী > & অ্যাডার = < আইপি ঠিকানা >

রিটার্নস:

{
  "address": "116.12.250.1",
  "country": "SG",
  "stateprov": "Central Singapore",
  "city": "Singapore"
}

সীমাবদ্ধতা:

  • প্রতিদিন 2,500 অনুরোধ
  • জেএসএনপি কলব্যাকগুলি সমর্থন করে না
  • আইপি অ্যাড্রেস প্যারামিটার প্রয়োজন
  • আপনার এপিআই কী পেতে একটি ইমেল ঠিকানা প্রয়োজন
  • বিনামূল্যে পরিকল্পনা সহ কোনও এসএসএল (https) নেই

Geobytes

এটি ব্যবহার করে দেখুন: http://gd.geobytes.com/GetCityDetails

$.getJSON('http://gd.geobytes.com/GetCityDetails?callback=?', function(data) {
  console.log(JSON.stringify(data, null, 2));
});

রিটার্নস:

{
  "geobytesforwarderfor": "",
  "geobytesremoteip": "116.12.250.1",
  "geobytesipaddress": "116.12.250.1",
  "geobytescertainty": "99",
  "geobytesinternet": "SA",
  "geobytescountry": "Saudi Arabia",
  "geobytesregionlocationcode": "SASH",
  "geobytesregion": "Ash Sharqiyah",
  "geobytescode": "SH",
  "geobyteslocationcode": "SASHJUBA",
  "geobytescity": "Jubail",
  "geobytescityid": "13793",
  "geobytesfqcn": "Jubail, SH, Saudi Arabia",
  "geobyteslatitude": "27.004999",
  "geobyteslongitude": "49.660999",
  "geobytescapital": "Riyadh ",
  "geobytestimezone": "+03:00",
  "geobytesnationalitysingular": "Saudi Arabian ",
  "geobytespopulation": "22757092",
  "geobytesnationalityplural": "Saudis",
  "geobytesmapreference": "Middle East ",
  "geobytescurrency": "Saudi Riyal",
  "geobytescurrencycode": "SAR",
  "geobytestitle": "Saudi Arabia"
}

সীমাবদ্ধতা:

  • প্রতি ঘন্টা 16,384 অনুরোধ
  • বিনামূল্যে পরিকল্পনা সহ কোনও এসএসএল (https) নেই
  • ভুল অবস্থানটি ফিরে আসতে পারে (আমি সিঙ্গাপুরে আছি, সৌদি আরব নয়)

GeoIPLookup.io

এটি ব্যবহার করে দেখুন: https://json.geoiplookup.io/api

$.getJSON('https://json.geoiplookup.io/api?callback=?', function(data) {
  console.log(JSON.stringify(data, null, 2));
});

রিটার্নস:

{
    "ip": "116.12.250.1",
    "isp": "SGPOST",
    "org": "Singapore Post Ltd",
    "hostname": "116.12.250.1",
    "longitude": "103.807",
    "latitude": "1.29209",
    "postal_code": "",
    "city": "Singapore",
    "country_code": "SG",
    "country_name": "Singapore",
    "continent_code": "AS",
    "region": "Central Singapore",
    "district": "",
    "timezone_name": "Asia\/Singapore",
    "connection_type": "",
    "asn": "AS3758 SingNet",
    "currency_code": "SGD",
    "currency_name": "Singapore Dollar",
    "success": true
}

সীমাবদ্ধতা:

  • প্রতি ঘন্টা 10,000 অনুরোধ
  • ফ্রি এপিআই কেবল অ-বাণিজ্যিক ব্যবহারের অনুমতি দেয়

geoPlugin

এটি ব্যবহার করে দেখুন: http://www.geoplugin.net/json.gp

$.getJSON('http://www.geoplugin.net/json.gp?jsoncallback=?', function(data) {
  console.log(JSON.stringify(data, null, 2));
});

রিটার্নস:

{
  "geoplugin_request": "116.12.250.1",
  "geoplugin_status": 200,
  "geoplugin_credit": "Some of the returned data includes GeoLite data created by MaxMind, available from <a href=\\'http://www.maxmind.com\\'>http://www.maxmind.com</a>.",
  "geoplugin_city": "Singapore",
  "geoplugin_region": "Singapore (general)",
  "geoplugin_areaCode": "0",
  "geoplugin_dmaCode": "0",
  "geoplugin_countryCode": "SG",
  "geoplugin_countryName": "Singapore",
  "geoplugin_continentCode": "AS",
  "geoplugin_latitude": "1.2931",
  "geoplugin_longitude": "103.855797",
  "geoplugin_regionCode": "00",
  "geoplugin_regionName": "Singapore (general)",
  "geoplugin_currencyCode": "SGD",
  "geoplugin_currencySymbol": "&#36;",
  "geoplugin_currencySymbol_UTF8": "$",
  "geoplugin_currencyConverter": 1.4239
}

সীমাবদ্ধতা:

  • 120 প্রতি মিনিটে অনুরোধ
  • বিনামূল্যে পরিকল্পনা সহ কোনও এসএসএল (https) নেই

হ্যাকার লক্ষ্য

এটি ব্যবহার করে দেখুন: https://api.hackertarget.com/geoip/?q= < আইপি ঠিকানা >

রিটার্নস:

IP Address: 116.12.250.1
Country: SG
State: N/A
City: Singapore
Latitude: 1.293100
Longitude: 103.855797

সীমাবদ্ধতা:

  • 50 প্রতিদিন অনুরোধ
  • জেএসএনপি কলব্যাকগুলি সমর্থন করে না
  • আইপি অ্যাড্রেস প্যারামিটার প্রয়োজন
  • সরল পাঠ্য ফেরত দেয়

ipapi.co

এটি ব্যবহার করে দেখুন: https://ipapi.co/json/

$.getJSON('https://ipapi.co/json/', function(data) {
  console.log(JSON.stringify(data, null, 2));
});

রিটার্নস:

{
  "ip": "116.12.250.1",
  "city": "Singapore",
  "region": "Central Singapore Community Development Council",
  "country": "SG",
  "country_name": "Singapore",
  "postal": null,
  "latitude": 1.2855,
  "longitude": 103.8565,
  "timezone": "Asia/Singapore"
}

সীমাবদ্ধতা:

  • প্রতিদিন 1000 টি অনুরোধ
  • এসএসএল (https) প্রয়োজন

IP-API.com

এটি ব্যবহার করে দেখুন: http://ip-api.com/json

$.getJSON('http://ip-api.com/json?callback=?', function(data) {
  console.log(JSON.stringify(data, null, 2));
});

রিটার্নস:

{
  "as": "AS3758 SingNet",
  "city": "Singapore",
  "country": "Singapore",
  "countryCode": "SG",
  "isp": "SingNet Pte Ltd",
  "lat": 1.2931,
  "lon": 103.8558,
  "org": "Singapore Telecommunications",
  "query": "116.12.250.1",
  "region": "01",
  "regionName": "Central Singapore Community Development Council",
  "status": "success",
  "timezone": "Asia/Singapore",
  "zip": ""
}

সীমাবদ্ধতা:

  • প্রতি মিনিটে 150 টি অনুরোধ
  • বিনামূল্যে পরিকল্পনা সহ কোনও এসএসএল (https) নেই

Ipdata.co

এটি ব্যবহার করে দেখুন: https://api.ipdata.co

$.getJSON('https://api.ipdata.co', function(data) {
  console.log(JSON.stringify(data, null, 2));
});

রিটার্নস:

{
  "ip": "116.12.250.1",
  "city": "Singapore",
  "region": "Central Singapore Community Development Council",
  "region_code": "01",
  "country_name": "Singapore",
  "country_code": "SG",
  "continent_name": "Asia",
  "continent_code": "AS",
  "latitude": 1.2931,
  "longitude": 103.8558,
  "asn": "AS3758",
  "organisation": "SingNet",
  "postal": "",
  "calling_code": "65",
  "flag": "https://ipdata.co/flags/sg.png",
  "emoji_flag": "\ud83c\uddf8\ud83c\uddec",
  "emoji_unicode": "U+1F1F8 U+1F1EC",
  "is_eu": false,
  "languages": [
    {
      "name": "English",
      "native": "English"
    },
    {
      "name": "Malay",
      "native": "Bahasa Melayu"
    },
    {
      "name": "Tamil",
      "native": "\u0ba4\u0bae\u0bbf\u0bb4\u0bcd"
    },
    {
      "name": "Chinese",
      "native": "\u4e2d\u6587"
    }
  ],
  "currency": {
    "name": "Singapore Dollar",
    "code": "SGD",
    "symbol": "S$",
    "native": "$",
    "plural": "Singapore dollars"
  },
  "time_zone": {
    "name": "Asia/Singapore",
    "abbr": "+08",
    "offset": "+0800",
    "is_dst": false,
    "current_time": "2018-05-09T12:28:49.183674+08: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
  }
}

সীমাবদ্ধতা:

  • প্রতিদিন 1,500 টি অনুরোধ
  • আপনার এপিআই কী পেতে একটি ইমেল ঠিকানা প্রয়োজন
  • এসএসএল (https) প্রয়োজন

আইপি সন্ধান করুন

এটি ব্যবহার করে দেখুন: https://ipfind.co/me?auth= < আপনার এপিআই কী >

$.getJSON('https://ipfind.co/me?auth=<your_api_key>', function(data) {
  console.log(JSON.stringify(data, null, 2));
});

রিটার্নস:

{
  "ip_address": "116.12.250.1",
  "country": "Singapore",
  "country_code": "SG",
  "continent": "Asia",
  "continent_code": "AS",
  "city": "Singapore",
  "county": null,
  "region": "Central Singapore",
  "region_code": "01",
  "timezone": "Asia/Singapore",
  "owner": null,
  "longitude": 103.8565,
  "latitude": 1.2855,
  "currency": "SGD",
  "languages": [
    "cmn",
    "en-SG",
    "ms-SG",
    "ta-SG",
    "zh-SG"
  ]
}

সীমাবদ্ধতা:

  • প্রতিদিন 300 অনুরোধ
  • আপনার এপিআই কী পেতে নিবন্ধকরণ প্রয়োজন

ipgeolocation

এটি ব্যবহার করে দেখুন: https://api.ipgeolocation.io/ipgeo?apiKey= < আপনার এপিআই কী >

$.getJSON('https://api.ipgeolocation.io/ipgeo?apiKey=<your_api_key>', function(data) {
  console.log(JSON.stringify(data, null, 2));
});

রিটার্নস:

{
  "ip": "116.12.250.1",
  "continent_code": "AS",
  "continent_name": "Asia",
  "country_code2": "SG",
  "country_code3": "SGP",
  "country_name": "Singapore",
  "country_capital": "Singapore",
  "state_prov": "Central Singapore",
  "district": "",
  "city": "Singapore",
  "zipcode": "",
  "latitude": "1.29209",
  "longitude": "103.807",
  "is_eu": false,
  "calling_code": "+65",
  "country_tld": ".sg",
  "languages": "cmn,en-SG,ms-SG,ta-SG,zh-SG",
  "country_flag": "https://ipgeolocation.io/static/flags/sg_64.png",
  "isp": "SGPOST",
  "connection_type": "",
  "organization": "Singapore Post Ltd",
  "geoname_id": "1880252",
  "currency": {
    "name": "Dollar",
    "code": "SGD"
  },
  "time_zone": {
    "name": "Asia/Singapore",
    "offset": 8,
    "is_dst": false,
    "current_time": "2018-06-12 09:06:49.028+0800"
  }
}

সীমাবদ্ধতা:

  • 50,000 প্রতি মাসে অনুরোধ
  • আপনার এপিআই কী পেতে নিবন্ধকরণ প্রয়োজন

ipify

এটি ব্যবহার করে দেখুন: https://api.ipify.org/?format=json

$.getJSON('https://api.ipify.org?format=jsonp&callback=?', function(data) {
  console.log(JSON.stringify(data, null, 2));
});

রিটার্নস:

{
  "ip": "116.12.250.1"
}

সীমাবদ্ধতা:

  • না

IPInfoDB

এটি ব্যবহার করে দেখুন: https://api.ipinfodb.com/v3/ip-city/?key= < আপনার এপি কী > & ফর্ম্যাট = json

$.getJSON('https://api.ipinfodb.com/v3/ip-city/?key=<your_api_key>&format=json&callback=?', function(data) {
  console.log(JSON.stringify(data, null, 2));
});

রিটার্নস:

{
  "statusCode": "OK",
  "statusMessage": "",
  "ipAddress": "116.12.250.1",
  "countryCode": "SG",
  "countryName": "Singapore",
  "regionName": "Singapore",
  "cityName": "Singapore",
  "zipCode": "048941",
  "latitude": "1.28967",
  "longitude": "103.85",
  "timeZone": "+08:00"
}

সীমাবদ্ধতা:

  • প্রতি সেকেন্ডে দুটি অনুরোধ
  • আপনার এপিআই কী পেতে নিবন্ধকরণ প্রয়োজন

ipinfo.io

এটি ব্যবহার করে দেখুন: https://ipinfo.io/json

$.getJSON('https://ipinfo.io/json', function(data) {
  console.log(JSON.stringify(data, null, 2));
});

রিটার্নস:

{
  "ip": "116.12.250.1",
  "hostname": "No Hostname",
  "city": "Singapore",
  "region": "Central Singapore Community Development Council",
  "country": "SG",
  "loc": "1.2931,103.8558",
  "org": "AS3758 SingNet"
}

সীমাবদ্ধতা:

  • প্রতিদিন 1000 টি অনুরোধ

Ipregistry

এটি ব্যবহার করে দেখুন: https://api.ipregistry.co/?key= < আপনার এপিআই কী >

$.getJSON('https://api.ipregistry.co/?key=<your_api_key>', function(data) {
  console.log(JSON.stringify(data, null, 2));
});

রিটার্নস:

{
  "ip" : "116.12.250.1",
  "type" : "IPv4",
  "hostname" : null,
  "carrier" : {
    "name" : null,
    "mcc" : null,
    "mnc" : null
  },
  "connection" : {
    "asn" : 3758,
    "domain" : "singnet.com.sg",
    "organization" : "SingNet Pte Ltd",
    "type" : "isp"
  },
  "currency" : {
    "code" : "SGD",
    "name" : "Singapore Dollar",
    "plural" : "Singapore dollars",
    "symbol" : "SGD",
    "symbol_native" : "SGD",
    "format" : {
      "negative" : {
        "prefix" : "-SGD",
        "suffix" : ""
      },
      "positive" : {
        "prefix" : "SGD",
        "suffix" : ""
      }
    }
  },
  "location" : {
    "continent" : {
      "code" : "AS",
      "name" : "Asia"
    },
    "country" : {
      "area" : 692.0,
      "borders" : [ ],
      "calling_code" : "65",
      "capital" : "Singapore",
      "code" : "SG",
      "name" : "Singapore",
      "population" : 5638676,
      "population_density" : 8148.38,
      "flag" : {
        "emoji" : "🇸🇬",
        "emoji_unicode" : "U+1F1F8 U+1F1EC",
        "emojitwo" : "https://cdn.ipregistry.co/flags/emojitwo/sg.svg",
        "noto" : "https://cdn.ipregistry.co/flags/noto/sg.png",
        "twemoji" : "https://cdn.ipregistry.co/flags/twemoji/sg.svg",
        "wikimedia" : "https://cdn.ipregistry.co/flags/wikimedia/sg.svg"
      },
      "languages" : [ {
        "code" : "cmn",
        "name" : "cmn",
        "native" : "cmn"
      }, {
        "code" : "en",
        "name" : "English",
        "native" : "English"
      }, {
        "code" : "ms",
        "name" : "Malay",
        "native" : "Melayu"
      }, {
        "code" : "ta",
        "name" : "Tamil",
        "native" : "தமிழ்"
      }, {
        "code" : "zh",
        "name" : "Chinese",
        "native" : "中文"
      } ],
      "tld" : ".sg"
    },
    "region" : {
      "code" : null,
      "name" : "Singapore"
    },
    "city" : "Singapore",
    "postal" : "96534",
    "latitude" : 1.28967,
    "longitude" : 103.85007,
    "language" : {
      "code" : "cmn",
      "name" : "cmn",
      "native" : "cmn"
    },
    "in_eu" : false
  },
  "security" : {
    "is_bogon" : false,
    "is_cloud_provider" : false,
    "is_tor" : false,
    "is_tor_exit" : false,
    "is_proxy" : false,
    "is_anonymous" : false,
    "is_abuser" : false,
    "is_attacker" : false,
    "is_threat" : false
  },
  "time_zone" : {
    "id" : "Asia/Singapore",
    "abbreviation" : "SGT",
    "current_time" : "2019-09-29T23:13:32+08:00",
    "name" : "Singapore Standard Time",
    "offset" : 28800,
    "in_daylight_saving" : false
  }
}

সীমাবদ্ধতা:

  • নিখরচায় পরিকল্পনায় 100,000 অনুরোধ অন্তর্ভুক্ত রয়েছে
  • আপনার এপিআই কী পেতে নিবন্ধকরণ প্রয়োজন

আইপস্ট্যাক (পূর্বে freegeoip.net)

এটি ব্যবহার করে দেখুন: http://api.ipstack.com/ < ip ঠিকানা >? অ্যাক্সেস_কি = <আপনার এপি কী>

$.getJSON('http://api.ipstack.com/<ip_address>?access_key=<your_api_key>', function(data) {
  console.log(JSON.stringify(data, null, 2));
});

রিটার্নস:

{
    "ip": "116.12.250.1",
    "type": "ipv4",
    "continent_code": "AS",
    "continent_name": "Asia",
    "country_code": "SG",
    "country_name": "Singapore",
    "region_code": "01",
    "region_name": "Central Singapore Community Development Council",
    "city": "Singapore",
    "zip": null,
    "latitude": 1.2931,
    "longitude": 103.8558,
    "location": {
        "geoname_id": 1880252,
        "capital": "Singapore",
        "languages": [{
            "code": "en",
            "name": "English",
            "native": "English"
        },
        {
            "code": "ms",
            "name": "Malay",
            "native": "Bahasa Melayu"
        },
        {
            "code": "ta",
            "name": "Tamil",
            "native": "\u0ba4\u0bae\u0bbf\u0bb4\u0bcd"
        },
        {
            "code": "zh",
            "name": "Chinese",
            "native": "\u4e2d\u6587"
        }],
        "country_flag": "http:\/\/assets.ipstack.com\/flags\/sg.svg",
        "country_flag_emoji": "\ud83c\uddf8\ud83c\uddec",
        "country_flag_emoji_unicode": "U+1F1F8 U+1F1EC",
        "calling_code": "65",
        "is_eu": false
    }
}

সীমাবদ্ধতা:

  • 10,000 প্রতি মাসে অনুরোধ
  • আইপি অ্যাড্রেস প্যারামিটার প্রয়োজন
  • আপনার এপিআই কী পেতে নিবন্ধকরণ প্রয়োজন
  • বিনামূল্যে পরিকল্পনা সহ কোনও এসএসএল (https) নেই

jsonip.com

এটি ব্যবহার করে দেখুন: https://jsonip.com

$.getJSON('https://jsonip.com/?callback=?', function(data) {
  console.log(JSON.stringify(data, null, 2));
});

রিটার্নস:

{
  "ip": "116.12.250.1",
  "about": "https://jsonip.com/about",
  "Pro!": "http://getjsonip.com",
  "Get Notifications": "https://jsonip.com/notify"
}

সীমাবদ্ধতা:

  • প্রতিক্রিয়া আপসেল অন্তর্ভুক্ত

জেএসওএন পরীক্ষা

এটি ব্যবহার করে দেখুন: http://ip.jsontest.com/

$.getJSON('http://ip.jsontest.com/?callback=?', function(data) {
  console.log(JSON.stringify(data, null, 2));
});

রিটার্নস:

{
  "ip": "116.12.250.1"
}

সীমাবদ্ধতা:

  • কোনও এসএসএল (https) নেই
  • অনেকটা (কোটা ছাড়িয়ে) চলে যায়, তাই আমি এটি উত্পাদন জন্য ব্যবহার করব না
  • আপনার যদি একটি IPv6 ঠিকানা দেয় তবে আপনি যা চান তা নাও পারে may

Nekudo

এটি ব্যবহার করে দেখুন: https://geoip.nekudo.com/api

$.getJSON('https://geoip.nekudo.com/api', function(data) {
  console.log(JSON.stringify(data, null, 2));
});

রিটার্নস:

{
  "city": "Singapore",
  "country": {
    "name": "Singapore",
    "code": "SG"
  },
  "location": {
    "accuracy_radius": 50,
    "latitude": 1.2855,
    "longitude": 103.8565,
    "time_zone": "Asia/Singapore"
  },
  "ip": "116.12.250.1"
}

সীমাবদ্ধতা:

  • ইজিপ্রাইভেসি তালিকাটি ব্যবহার করে অ্যাড ব্লকারগুলি দ্বারা অবরুদ্ধ

মনে রাখবেন যে এগুলি সমস্ত নিখরচায় পরিষেবা, তাই আপনার মাইলেজটি কোটা এবং আপটাইম ছাড়িয়ে যাওয়ার ক্ষেত্রে পরিবর্তিত হতে পারে এবং কখন / কখন সেগুলি রাস্তায় অফলাইনে নেওয়া হবে (কে প্রদর্শন করুন: টেলাইজ ) who আপনি এসএসএল সমর্থন এর মতো আরও বৈশিষ্ট্য চাইলে এই পরিষেবাগুলির বেশিরভাগই একটি প্রদত্ত স্তরের অফার দেয়।

এছাড়াও, যেমন স্কোবালজিক নীচের মন্তব্যে উল্লিখিত হয়েছে, অনুরোধের কোটাগুলি বেশিরভাগই একাডেমিক যেহেতু এটি ক্লায়েন্ট-সাইডে ঘটছে এবং বেশিরভাগ শেষ ব্যবহারকারীরা কোটা ছাড়িয়ে যাবে না।

আপডেট


3
: @AfolabiOlaoluwaAkinwumi আপনি ভালো কিছু করার চেষ্টা করতে পারেন $.getJSON('//freegeoip.net/json/?callback=?', function(data) { if (!data || !data.ip) alert('IP not found'); }).fail(function() { alert('$.getJSON() request failed'); });
thdoan

1
পুনঃটুইট সীমাবদ্ধতা সাধারণত কিছুই বোঝায় না: ভাল পয়েন্ট, এবং সম্ভবত একটি এপি কী প্রয়োজন যাগুলি থেকে দূরে থাকার কারণ, কারণ কীটির ব্যবহার গণনা করা যেতে পারে।
নিক রাইস

2
@ জোহানভিজ সত্য, তবে ওপি যদি বোঝায় যে তারা কেবল পৃষ্ঠা আপডেট করতে পারে এবং সার্ভার-সাইড (প্রশ্ন থেকে অস্পষ্ট) কিছুই করতে পারে না তবে এই বিকল্পগুলি প্রশ্নের জবাব জরিমানা দেয়।
নিক রাইস

1
@ রবওয়া ধন্যবাদ, আমি 4/14 আপডেটে বিজ্ঞাপন ব্লকারের সীমাবদ্ধতা যুক্ত করেছি। আমি খুব শীঘ্রই geoiplookup.io যোগ করব।
thdoan

1
এই সমস্ত উত্তর তৃতীয় পক্ষের পরিষেবাতে নির্ভর করে, যা একটি বড় অসুবিধা, কেবলমাত্র আপনি সেই পরিষেবাটির উপর নির্ভর করে সময়মত যেভাবে সাড়া দিচ্ছেন তা নয়, তবে কারণ এটি যদি না হয় এবং আপনি কোনও অ্যাপ্রোপিয়েট সময়সীমা সেট করেন না (যা সর্বদা থাকবে পরে তুলনায় সোনার দেখা দেয়), আপনি আপনার পৃষ্ঠার লোড সময়টি বিলম্ব করবেন, যা মোটেই ভাল নয়। সুতরাং, ক্লায়েন্টের আইপি ফিরিয়ে দিতে কেবল নিজের সার্ভার ব্যবহার করে কেন নয়?, যা কোনও প্রোগ্রামিং ভাষার সাথে বিটিডাব্লু একটি তুচ্ছ কাজ।
ড্যানিয়েল জে।

280

চূড়ান্ত আপডেট

এই সমাধানটি আর কাজ করবে না কারণ ব্রাউজারগুলি ওয়েলব্র্যাটিক ফাঁস ফিক্স করছে: আরও তথ্যের জন্য এই অন্যান্য প্রশ্নটি পড়ুন: আরটিসিআইসিস্যান্ডিডিট আর আইপি ফেরত আসবে না


আপডেট : আমি সর্বদা কোডের একটি মিনি / uglified সংস্করণ তৈরি করতে চেয়েছিলাম, সুতরাং এখানে একটি ES6 প্রতিশ্রুতি কোড দেওয়া হয়েছে:

var findIP = new Promise(r=>{var w=window,a=new (w.RTCPeerConnection||w.mozRTCPeerConnection||w.webkitRTCPeerConnection)({iceServers:[]}),b=()=>{};a.createDataChannel("");a.createOffer(c=>a.setLocalDescription(c,b,b),b);a.onicecandidate=c=>{try{c.candidate.candidate.match(/([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/g).forEach(r)}catch(e){}}})

/*Usage example*/
findIP.then(ip => document.write('your ip: ', ip)).catch(e => console.error(e))

দ্রষ্টব্য: আপনি যদি ব্যবহারকারীর সমস্ত আইপি (যা তার নেটওয়ার্কের উপর নির্ভর করে আরও বেশি হতে পারে) চান তবে এই নতুন সংযুক্ত কোডটি কেবলমাত্র একক আইপি ফিরে আসবে ... মূল কোডটি ব্যবহার করুন ...


ওয়েবআরটিসি-র ধন্যবাদ , ওয়েবআরটিসি সমর্থিত ব্রাউজারগুলিতে স্থানীয় আইপি পাওয়া খুব সহজ (অন্তত এখনের জন্য)। আমি উত্স কোডটি সংশোধন করেছি, রেখাগুলি হ্রাস করেছি, যেহেতু আপনি কেবল স্থানীয় আইপি চান না, কোনও সর্বজনীন আইপি চান না, নীচের কোডটি সর্বশেষ ফায়ারফক্স এবং ক্রোমে কাজ করে, কেবল স্নিপেট চালান এবং নিজের জন্য যাচাই করুন:

function findIP(onNewIP) { //  onNewIp - your listener function for new IPs
  var myPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection; //compatibility for firefox and chrome
  var pc = new myPeerConnection({iceServers: []}),
    noop = function() {},
    localIPs = {},
    ipRegex = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/g,
    key;

  function ipIterate(ip) {
    if (!localIPs[ip]) onNewIP(ip);
    localIPs[ip] = true;
  }
  pc.createDataChannel(""); //create a bogus data channel
  pc.createOffer(function(sdp) {
    sdp.sdp.split('\n').forEach(function(line) {
      if (line.indexOf('candidate') < 0) return;
      line.match(ipRegex).forEach(ipIterate);
    });
    pc.setLocalDescription(sdp, noop, noop);
  }, noop); // create offer and set local description
  pc.onicecandidate = function(ice) { //listen for candidate events
    if (!ice || !ice.candidate || !ice.candidate.candidate || !ice.candidate.candidate.match(ipRegex)) return;
    ice.candidate.candidate.match(ipRegex).forEach(ipIterate);
  };
}



var ul = document.createElement('ul');
ul.textContent = 'Your IPs are: '
document.body.appendChild(ul);

function addIP(ip) {
  console.log('got ip: ', ip);
  var li = document.createElement('li');
  li.textContent = ip;
  ul.appendChild(li);
}

findIP(addIP);
<h1> Demo retrieving Client IP using WebRTC </h1>

এখানে যা ঘটছে তা হ'ল, আমরা একটি ডামি পিয়ার সংযোগ তৈরি করছি, এবং আমাদের সাথে যোগাযোগ করার জন্য রিমোট পিয়ারের জন্য, আমরা সাধারণত একে অপরের সাথে বরফ প্রার্থীদের বিনিময় করি। এবং বরফ প্রার্থীদের (স্থানীয় সেশনের বিবরণ এবং onIceCandidateEvent থেকে) পড়া আমরা ব্যবহারকারীর আইপি বলতে পারি।

আমি যেখান থেকে কোড নিয়েছি -> উত্স


12
আপভোট করুন কারণ এখানে সর্বোত্তম উত্তরটি নিচে দেওয়া হয়েছে, দুর্দান্ত গিটহাব রেপোর জন্যও ধন্যবাদ!
কানো

28
সতর্কতা: এটি আপনার সর্বজনীন আইপি প্রদর্শন করে না, কেবলমাত্র স্থানীয় নেটওয়ার্ক। আপনি একটি ব্যবহারকারী দেশ detecting জন্য এটি ব্যবহার করতে পারেন না, উদাহরণস্বরূপ, যদি তারা একটি ল্যান উপর
FloatingRock

1
@ ফ্লয়েটিংরক আপনি স্টান সার্ভার ব্যবহার করে (এবং পিয়ার তৈরি করার সময় এটির কনফিগার করে) আবার পাবলিক আইপিও পুনরুদ্ধার করতে পারেন, তারপরে আবার আপনাকে স্টান সার্ভার বজায় রাখতে / ব্যবহার করতে হবে, সার্ভার কোডটি ছবিতে আনতে হবে।
মধ্য

10
এটি ওয়েবআরটিসি লিক হিসাবে পরিচিত। সমস্ত মেয়র ব্রাউজার দ্বারা স্থির করা উচিত, কিন্তু এটি না। এখানে আরও তথ্য: গোপনীয়তা টোলস.আইও / ওয়েবেটসিএইচটিএমএল সম্ভবত টর-ব্রাউজার আপনার রিয়েল-আইপি ফাঁস করার সাথে সম্পর্কিত।
কাপিটাইন উইটবার্ড

1
যদিও, আমি উত্তরটি পছন্দ করেছি, ক্লায়েন্ট ওয়েবআরটিটিসি
//

175

আপনি এটি JSONP এর সাথে সার্ভার সাইডের মাধ্যমে রিলে করতে পারবেন

এবং এটি সন্ধানের জন্য গুগল করার সময় এটি এখানে খুঁজে পেয়েছি আমি ক্লায়েন্ট-সাইড জাভাস্ক্রিপ্ট ব্যবহার করে কোনও ডিএনএস লুপ (আইপি ঠিকানার হোস্টনাম) সম্পাদন করতে পারি?

<script type="application/javascript">
    function getip(json){
      alert(json.ip); // alerts the ip address
    }
</script>

<script type="application/javascript" src="http://www.telize.com/jsonip?callback=getip"></script>

দ্রষ্টব্য: টেলিজ ডটকম এপিআই 15 নভেম্বর, 2015 তারিখে স্থায়ীভাবে বন্ধ হয়ে গেছে


45
আমি এই স্নিপেটের প্রশংসা করার সময়, আমি মনে করি একটি জাভাস্ক্রিপ্ট পাঠ্য সামগ্রী লোড করা এবং কোনও ফাংশনটির মাধ্যমে মূল্যায়ন করা একটি গুরুতর সুরক্ষা ঝুঁকি। যদি প্রতিক্রিয়াটির সামগ্রী পরিবর্তন হয় এবং সমস্ত 100+ জন লোক যারা এখানে এই উত্তরটিকে ভোট দিয়েছে এবং সম্ভবত সেই স্নিপেট ব্যবহার করে এটি কোনও সম্ভাব্য অনিরাপদ সামগ্রী সহ একটি ক্রিয়াকলাপটি শুরু করে। আমি এটি কেবল তখনই ব্যবহার করতাম যদি এটি JSON স্ট্রিং হত।
auco

32
Error Over Quota This application is temporarily over its serving quota. Please try again later.
ব্র্যাড এম

28
এটি কোনও ভাল উত্তর নয় কারণ এটিতে একটি সার্ভার সাইড অনুরোধ জড়িত। প্রশ্নটি পরিষ্কারভাবে "খাঁটি জাভাস্ক্রিপ্ট" বলেছিল।
মীখা

2
মীখা, খাঁটি জাভাস্ক্রিপ্ট সহ কোনও আইপি ঠিকানা পাওয়ার কোনও উপায় নেই। আমি আপনাকে NAT এর উপর কিছু পড়ার পরামর্শ দিচ্ছি এবং এটি কীভাবে কার্যকর হয়। আপনার ইন্টারনেট আইপি ঠিকানাটি আপনার কাছে আবার প্রতিস্থাপন করতে আপনার একটি সার্ভার দরকার
চাদ গ্রান্ট

11
পরিষেবাটি এখন ডাউন।
সিরিল এন।

109

এখানে বেশিরভাগ উত্তর "চারপাশে কাজ করে" দ্বারা সার্ভার-সাইড কোডের প্রয়োজন ... অন্য কারও সার্ভারকে আঘাত করে। কোনটি সম্পূর্ণ বৈধ কৌশল, যদি না আপনি কোনও সার্ভারকে আঘাত না করেই আইপি ঠিকানাটি পাওয়ার প্রয়োজন না হন।

Ditionতিহ্যগতভাবে এটি কোনও ধরণের প্লাগইন ছাড়াই সম্ভব ছিল না (এবং তারপরেও আপনি সম্ভবত কোনও নেট রাউটারের পেছনে থাকলে ভুল আইপি ঠিকানাটি পেয়ে যাবেন), তবে ওয়েবআরটিসিটির আবির্ভাবের সাথে এটি করা সম্ভব হয় .. । যদি আপনি লক্ষ্য করে করছি ব্রাউজারে সমর্থন করা WebRTC (বর্তমানে: ফায়ারফক্স, ক্রোম এবং অপেরা)।

আপনি কীভাবে ওয়েবআরটিটিসি ব্যবহার করে দরকারী ক্লায়েন্টের আইপি অ্যাড্রেসগুলি পুনরুদ্ধার করতে পারেন সে সম্পর্কে বিশদ জানতে মিডোর জবাবটি পড়ুন


23
@ অস্কার: এটি একই কৌশল হিসাবে উপস্থিত হয়েছে (জেএসওএনপি-ফিরিয়ে দেওয়া সার্ভার-দৃশ্যমান আইপি) যা চাদ তার উত্তরে উল্লেখ করেছে। যা "সার্ভার-সাইড কোড নয়" এর অপির প্রয়োজনীয়তার সাথে মেলে না। তবে হ্যাঁ, আপনি যদি সেই প্রয়োজনীয়তা উপেক্ষা করেন তবে তা সম্পাদন করার এক উপায় way
শোগ 9


1
আপডেট, @ আকাম। কয়েক মাস আগে এটিকে নির্দেশ করার জন্য আপনার মিডোকে কিছু প্রস্তাব দেওয়া উচিত (বছরের পর বছর ভাবেন লোকেরা বিব্রতকরভাবে ভুল উত্তর পোস্ট করে যা এখনও সার্ভারের সমর্থন প্রয়োজন)।
শোগ

এখন ওয়েবআরটিসি আরও ব্যাপকভাবে সমর্থিত ?!
ওল্ডবয়

1
সেই "CanIUse" লিঙ্ক অনুসারে, এটি হ'ল @ বাগওয়িস্পেরার। আপনার যদি প্রয়োজন হয় না।
শোগ 9

81

আপনি hostip.info বা একটি অনুরূপ পরিষেবায় একটি এজাক্স কল করতে পারেন ...

function myIP() {
    if (window.XMLHttpRequest) xmlhttp = new XMLHttpRequest();
    else xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

    xmlhttp.open("GET","http://api.hostip.info/get_html.php",false);
    xmlhttp.send();

    hostipInfo = xmlhttp.responseText.split("\n");

    for (i=0; hostipInfo.length >= i; i++) {
        ipAddress = hostipInfo[i].split(":");
        if ( ipAddress[0] == "IP" ) return ipAddress[1];
    }

    return false;
}

বোনাস হিসাবে, ভূ-সামাজিক তথ্য একই কলে ফিরে আসে information


6
আপনি api.hostip.info/get_json.php ব্যবহার করে একটি JSON উপস্থাপনা পেতে পারেন , তারপরে ব্রাউজার ফাংশন, jQuery বা প্রোটোটাইপ দিয়ে JSON পার্স করুন।
ব্র্যাড ফোকেন

2
" api.hostip.info/get_html.php " তে কোন অনুরোধের সীমা আছে ? আমি এই এপিআই বিবরণটি কোথায় দেখতে পাব
নবীন লিওন

এটি নেটওয়ার্ক ফায়ারওয়ালের আইপি ফিরিয়ে দেয়। প্রকৃত ক্লায়েন্টের আইপি নয়। আসল ক্লায়েন্ট আইপি পাওয়ার কোনও উপায় আছে কি?
লীলা অ্যাডগুলা

76
এটা চেষ্টা কর
$.get("http://ipinfo.io", function(response) {
    alert(response.ip);
}, "jsonp");

অথবা

$(document).ready(function () {
    $.getJSON("http://jsonip.com/?callback=?", function (data) {
        console.log(data);
        alert(data.ip);
    });
});

বেহালা


এটি works .get (" ipinfo.io ", ফাংশন (প্রতিক্রিয়া) {সতর্কতা (প্রতিক্রিয়া। আইপি);}, "জসনপ"); তবে আমি কীভাবে ভেরিয়েবলের মধ্যে মানটি সঞ্চয় করব? মনে হয় এই অনুরোধ লুপের বাইরে অদৃশ্য হয়ে যাবে

1
সব ফ্রি আইপি লুকআপ পরিষেবার একটি তালিকা দেখার জন্য, আপনার জন্য আমার উত্তর পাঠাতে পারেন stackoverflow.com/questions/391979/...
thdoan

আইপি এর মান ফিরিয়ে দিতে আমি এই ফাংশনটি কীভাবে পাঠাব?
নেফতালি আকোস্টা

67

আপনি পারবেন না। আপনাকে একটি সার্ভার জিজ্ঞাসা করতে হবে।


5
এটি প্রশ্নের উত্তর সরবরাহ করে না। কোনও লেখকের কাছ থেকে সমালোচনা বা স্পষ্টতার জন্য অনুরোধ জানাতে, তাদের পোস্টের নীচে একটি মন্তব্য দিন।
হিমাংশু

28
কিন্ডা ঠিক আছে, তাই না? আমি বলতে চাইছি, যদি উত্তরটি "না, আপনি পারবেন না" তবে আমি যুক্তিটি বলতে পারি যে এটি বর্তমানে আপোভোটেড "এখানে, এই এলোমেলো অ্যাপস্পট অ্যাপ্লিকেশনটি ব্যবহার করুন" এর চেয়ে আরও সঠিক সঠিক উত্তর, যা মনে হচ্ছে যে এটি একটি বিপজ্জনক উত্তর বলে মনে হচ্ছে তালিকার শীর্ষে
স্টিভশেফার

16
আইএমও এটি সঠিক উত্তর এবং গ্রহণ করা উচিত। প্রশ্নটি বিশেষত "কোনও সার্ভারের সাইড কোড নয়" বলে।
ম্যাথিউইভিথানম


2
নিবন্ধন করুন কেউ ঠিক এটি বলেছেন কিনা তা দেখার জন্য আমি সমস্ত উত্তরের মাধ্যমে স্ক্রোল করে যাচ্ছিলাম - এবং নিজেই উত্তর হিসাবে এটি দেওয়ার জন্য প্রস্তুত ছিলাম। সমস্ত উচ্চ upvated উত্তর, তথ্যবহুল যদিও, সব একটি পৃথক প্রশ্নের উত্তর। প্রশ্নের উদ্ধৃতি দিয়ে: "খাঁটি জাভাস্ক্রিপ্ট ব্যবহার করে আমাকে কোনওভাবে ক্লায়েন্টের আইপি ঠিকানা টানতে হবে; সার্ভারের সাইড কোড, এমনকি এসএসআই নয়।" এই উত্তরটি সত্যই সঠিক উত্তর। ব্রাউজার-স্যান্ডবক্সযুক্ত জাভাস্ক্রিপ্ট এটি করতে পারে না (NAT বা প্রক্সি নির্বিশেষে)। অন্য উত্তরগুলির একটির যদি গ্রহণযোগ্য হয় তবে প্রশ্নটি পরিবর্তন করা উচিত।
ওয়ালি

64

সামনে তাকিও না

পরীক্ষা করে দেখুন http://www.ipify.org/

তাদের মতে:

  • আপনি সীমা ছাড়াই এটি ব্যবহার করতে পারেন (আপনি প্রতি মিনিটে কয়েক মিলিয়ন অনুরোধ করলেও)।
  • আইপিফাই সম্পূর্ণরূপে উন্মুক্ত উত্স ( গিটহাব সংগ্রহস্থলটি দেখুন )।

এখানে একটি কার্যকরী জেএস উদাহরণ (এই উত্তরের কেন এত কম ভোট রয়েছে তা ভেবে অবাক হওয়ার পরিবর্তে এটি কার্যকরভাবে দেখার চেষ্টা করুন):

<script>
function getIP(json) {
  alert("My public IP address is: " + json.ip);
}
</script>
<script src="https://api.ipify.org?format=jsonp&callback=getIP"></script>

কপি / পেস্ট করতে খুব অলস? আমি এটা পছন্দ করি. এখানে একটি 💻 ডেমো রয়েছে

ক্লিক করতে খুব অলস? :O

দ্রষ্টব্য : ডেমো চালানোর আগে অ্যাডব্লক প্লাস / ইউব্লক ও কো বন্ধ করুন .. অন্যথায়, এটি ঠিক কাজ করবে না।

আইপিফাই দলের সাথে আমার কিছু করার নেই । আমি কেবল মনে করি এটি হাস্যকরভাবে শীতল যে কেউ সাধারণের জন্য এমন একটি পরিষেবা সরবরাহ করবে।


4
সর্বোত্তম অংশটি হ'ল এটি "https" থেকে আসে তবে আমার কাছে এইচপি আইপি সাহায্যকারীদের কলগুলি "সুরক্ষিত না" থাকায় ব্লক হয়ে যাবে।
টেসা

আরে, এটি আমাকে কর্স ত্রুটি দেখাচ্ছে, আমার কি করা উচিত?
সাবেরপ্রশান্ত

@ সাববারপ্রান্ত আপনি কি "এইচটিটিপিএস" ব্যবহার করছেন?
ভাসমান

@ ফ্লাইটিংরক, না আমি এইচটিটিপি
সাবেরপ্রসন্ত

26

আপনি এর জন্য আমার পরিষেবা http://ipinfo.io ব্যবহার করতে পারেন , যা আপনাকে ক্লায়েন্টের আইপি, হোস্টনাম, ভূ-অবস্থান সম্পর্কিত তথ্য এবং নেটওয়ার্কের মালিক দেবে। আইপি লগ করে এমন একটি সাধারণ উদাহরণ এখানে দেওয়া হয়েছে:

$.get("http://ipinfo.io", function(response) {
    console.log(response.ip);
}, "jsonp");

এখানে আরও বিস্তারিত জেএসফিডেলের উদাহরণ যা সম্পূর্ণ প্রতিক্রিয়া সম্পর্কিত তথ্যও ছাপায়, তাই আপনি উপলব্ধ সমস্ত বিবরণ দেখতে পাবেন: http://jsfiddle.net/zK5FN/2/


মিশ্র সামগ্রী নীতি বিষয়, পরিবর্তন এড়াতে http://ipinfo.ioকরার //ipinfo.ioঅথবা https
স্যামুয়েল Elh

আমরা আপনার পরিষেবাটি ব্যবহার করতে চাই, স্ট্যাকওভারফ্লো ব্যবহারকারীদের জন্য আপনার কি কোনও ছাড়ের অফার রয়েছে?
মেহেদী দেহঘানি

@ মেহেদী দেহঘানি আমরা ব্যাকলিংক সহ ১০০ কিলো রেখ
বেন

19

আপনার পৃষ্ঠাতে এই কোডটি অন্তর্ভুক্ত করুন: <script type="text/javascript" src="http://l2.io/ip.js"></script>

আরও ডক এখানে


1
হুঁ। এটি আকর্ষণীয় দেখাচ্ছে ... তাদের কোনও সীমা আছে?
ইন্ডপাবলিক

1
লাইব্রেরি অফলাইন
riccardo.tasso

L2.io রেফের সাথে সম্পর্কিত কিছু ডিগ্রী স্প্যামি পপ আপ রয়েছে: হাইব্রিড- অ্যানালাইসিস.com / sample /… নমুনার মতো লিঙ্কগুলিকে এম্বেড করার অনুমতি দেয় 117.254.84.212:3000/getjs?nadipdata= "{" url ":" / ? ip.js Var = MYIP "," হোস্ট ":" l2.io "," Referer ":" website.com/... } "& screenheight = 768 & screenwidth = 1366 & TM = 1557565256073 & liberal এর সংক্ষিপ্ত রূপ = সত্য ও ফিঙ্গারপ্রিন্ট = c2VwLW5vLXJlZGlyZWN0
ওয়েন DSouza

16

আমি বলব চাদ এবং মাল্টার দুর্দান্ত উত্তর রয়েছে। যাইহোক, তাদের জটিল। সুতরাং আমি এই কোডটি প্রস্তাব করি যা আমি দেশের প্লাগইন অনুসারে বিজ্ঞাপন থেকে পেয়েছি

<script>
<script language="javascript" src="http://j.maxmind.com/app/geoip.js"></script>
<script language="javascript">
mmjsCountryCode = geoip_country_code();
mmjsCountryName = geoip_country_name();

</script>

আজাক্স না শুধু সরল জাভাস্ক্রিপ্ট। : ডি

আপনি http://j.maxmind.com/app/geoip.js এ গেলে দেখতে পাবেন যে এতে রয়েছে contains

function geoip_country_code() { return 'ID'; }
function geoip_country_name() { return 'Indonesia'; }
function geoip_city()         { return 'Jakarta'; }
function geoip_region()       { return '04'; }
function geoip_region_name()  { return 'Jakarta Raya'; }
function geoip_latitude()     { return '-6.1744'; }
function geoip_longitude()    { return '106.8294'; }
function geoip_postal_code()  { return ''; }
function geoip_area_code()    { return ''; }
function geoip_metro_code()   { return ''; }

এটি সত্যই এখনও প্রশ্নের উত্তর দেয় না কারণ

http://j.maxmind.com/app/geoip.js এ আইপি থাকে না (যদিও আমি বাজি ধরেছি এটি দেশ পেতে আইপি ব্যবহার করে)।

তবে পিএইচপি স্ক্রিপ্ট তৈরি করা এত সহজ যে কোনওরকম পপ হয়

function visitorsIP()   { return '123.123.123.123'; }

ওটা কর. Http://yourdomain.com/yourip.php এ রাখুন ।

তাহলে কর

<script language="javascript" src="http://yourdomain.com/yourip.php"></script>

প্রশ্নটি বিশেষত তৃতীয় পক্ষের স্ক্রিপ্ট ব্যবহার না করার কথা উল্লেখ করেছে। অন্য কোন উপায় নেই। জাভাস্ক্রিপ্ট আপনার আইপি জানতে পারে না। তবে জাভাস্ক্রিপ্টের মাধ্যমে অ্যাক্সেস করা যায় এমন অন্যান্য সার্ভারগুলি কোনও সমস্যা ছাড়াই কাজ করতে পারে।


7
দূরবর্তী সার্ভার থেকে একটি জাভাস্ক্রিপ্ট লোড করা এবং অজানা বিষয়বস্তুগুলির সাথে ফাংশনগুলি আহ্বান করা আমার কাছে বিশাল সুরক্ষার ঝুঁকির মতো (ফাংশনের বিষয়বস্তু পরিবর্তন হলে কী হবে?) বলে মনে হচ্ছে। আমি বরং JSON প্রতিক্রিয়া পার্স করা পছন্দ করব।
auco

3
ত্রুটি 404:
অবজেক্টটি

এটি অনেক দিন হয়ে গেছে,, উত্তরটি আসলে বেশ মিথ্যা। আমি জানতাম না জাভাস্ক্রিপ্ট আইপি জানতে পারে না।
user4951

ওহ এটি ফাংশনটি ভিজিটর আইআইপি বলতে পিএইচপি কোড নয়। এটি পিএইচপি কোড দ্বারা উত্পন্ন একটি জাভাক্রিপ্ট কোড
user4951

আপনি কেবল জাভাস্ক্রিপ্ট কোড মুদ্রণ করতে আপনার নিজের সার্ভার ব্যবহার করতে পারেন যা দর্শকদের আইপি বরাদ্দ করে।
user4951

15

এই প্রশ্নের দুটি ব্যাখ্যা রয়েছে। বেশিরভাগ লোকেরা "ক্লায়েন্ট আইপি" ব্যাখ্যার অর্থ পাবলিক আইপি অ্যাড্রেসটি বোঝায় যে ল্যানের বাইরে এবং ইন্টারনেটে ওয়েব সার্ভারের দেখা। যদিও এটি বেশিরভাগ ক্ষেত্রে ক্লায়েন্ট কম্পিউটারের আইপি ঠিকানা নয়

আমার জাভাস্ক্রিপ্ট সফটওয়্যারটি হোস্ট করছে এমন ব্রাউজারটি চালাচ্ছে এমন কম্পিউটারের আসল আইপি ঠিকানাটি (যা প্রায় সর্বদা ল্যানের স্থানীয় আইপি ঠিকানা যা NAT এর পিছনে থাকে)।

মিডো উপরে একটি চমত্কার উত্তর পোস্ট করেছে, এটি কেবলমাত্র উত্তর বলে মনে হচ্ছে যা সত্যই ক্লায়েন্টের আইপি ঠিকানা সরবরাহ করেছিল।

মিডো!

যাইহোক, উপস্থাপিত ফাংশন অ্যাসিক্রোনালিকভাবে চলমান। আমার কোডটিতে আইপি ঠিকানাটি আসলে ব্যবহার করা দরকার এবং একটি অ্যাসিনক্রোনাস সমাধান সহ আমি আইপি ঠিকানাটি পুনরুদ্ধার / শিখতে / সঞ্চয় করার আগে ব্যবহার করার চেষ্টা করতে পারি। ফলাফলগুলি ব্যবহারের আগে আমাকে অপেক্ষা করতে সক্ষম হতে হয়েছিল।

মিডোর ফাংশনের একটি "অপেক্ষাযোগ্য" সংস্করণ এখানে। আমি আশা করি এটি অন্য কাউকে সহায়তা করে:

function findIP(onNewIP) { //  onNewIp - your listener function for new IPs
    var promise = new Promise(function (resolve, reject) {
        try {
            var myPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection; //compatibility for firefox and chrome
            var pc = new myPeerConnection({ iceServers: [] }),
                noop = function () { },
                localIPs = {},
                ipRegex = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/g,
                key;
            function ipIterate(ip) {
                if (!localIPs[ip]) onNewIP(ip);
                localIPs[ip] = true;
            }
            pc.createDataChannel(""); //create a bogus data channel
            pc.createOffer(function (sdp) {
                sdp.sdp.split('\n').forEach(function (line) {
                    if (line.indexOf('candidate') < 0) return;
                    line.match(ipRegex).forEach(ipIterate);
                });
                pc.setLocalDescription(sdp, noop, noop);
            }, noop); // create offer and set local description

            pc.onicecandidate = function (ice) { //listen for candidate events
                if (ice && ice.candidate && ice.candidate.candidate && ice.candidate.candidate.match(ipRegex)) {
                    ice.candidate.candidate.match(ipRegex).forEach(ipIterate);
                }
                resolve("FindIPsDone");
                return;
            };
        }
        catch (ex) {
            reject(Error(ex));
        }
    });// New Promise(...{ ... });
    return promise;
};

//This is the callback that gets run for each IP address found
function foundNewIP(ip) {
    if (typeof window.ipAddress === 'undefined')
    {
        window.ipAddress = ip;
    }
    else
    {
        window.ipAddress += " - " + ip;
    }
}

//This is How to use the Waitable findIP function, and react to the
//results arriving
var ipWaitObject = findIP(foundNewIP);        // Puts found IP(s) in window.ipAddress
ipWaitObject.then(
    function (result) {
        alert ("IP(s) Found.  Result: '" + result + "'. You can use them now: " + window.ipAddress)
    },
    function (err) {
        alert ("IP(s) NOT Found.  FAILED!  " + err)
    }
);


 

   
<h1>Demo "Waitable" Client IP Retrieval using WebRTC </h1>


14

একটি সহজ এবং নিখরচায় দৃষ্টিভঙ্গি রয়েছে যা আপনার দর্শনার্থীকে কোনও অনুমতি চাইবে না।

এটি http://freegeoip.net/json এ খুব সাধারণ অ্যাজ্যাক্স পোস্টের অনুরোধ জমা দেওয়ার অন্তর্ভুক্ত । আপনি একবার আপনার অবস্থানের তথ্য জেএসএন-তে পেয়ে গেলে, পৃষ্ঠাটি আপডেট করে বা কোনও নতুনকে পুনর্নির্দেশ করে আপনি সেই অনুযায়ী প্রতিক্রিয়া জানান।

আপনি এখানে অবস্থান সম্পর্কিত তথ্যের জন্য আপনার অনুরোধটি কীভাবে জমা দিন:

jQuery.ajax( { 
  url: '//freegeoip.net/json/', 
  type: 'POST', 
  dataType: 'jsonp',
  success: function(location) {
     console.log(location)
  }
} );

দেখে মনে হচ্ছে তারা জুলাই 1 লা 2018
নিতিন পিএইচ

13

ঠিক আছে, আমি প্রশ্নটি থেকে আঁকছি, তবে আমার আজ একইরকম প্রয়োজন ছিল এবং যদিও আমি জাভাস্ক্রিপ্ট ব্যবহার করে ক্লায়েন্টের কাছ থেকে আইডিটি খুঁজে পাইনি, আমি নিম্নলিখিতটি করেছি did

সার্ভারের দিকে: -

<div style="display:none;visibility:hidden" id="uip"><%= Request.UserHostAddress %></div>

জাভাস্ক্রিপ্ট ব্যবহার করে

var ip = $get("uip").innerHTML;

আমি এএসপি.নেট আজাক্স ব্যবহার করছি তবে আপনি $ get () এর পরিবর্তে getElementById ব্যবহার করতে পারেন।

যা ঘটছে তা হ'ল, আমি পৃষ্ঠায় একটি লুকানো ডিভ উপাদান পেয়েছি যা ব্যবহারকারীর আইপি সার্ভার থেকে রেন্ডার হয়েছে। জাভাস্ক্রিপ্টের চেয়ে আমি কেবল সেই মানটি লোড করি।

এটি আপনার মতো অনুরূপ প্রয়োজনীয়তার সাথে কিছু লোকের পক্ষে সহায়ক হতে পারে (আমার মতো আমি যখন এটি বের করিনি)।

চিয়ার্স!


20
-1: ওপি বিশেষত "কোনও সার্ভারের সাইড কোড নেই" উল্লেখ করেছে, তবুও আপনি কিছু সি # ব্যবহার করেন।
ব্রুনো রেইস

8
শুধু আউটপুট করা ভাল না <script>var uip='<%= Request.UserHostAddress %>';</script>?
ক্রিস হেইনেস

সার্ভার সাইড কোড ব্যবহার করা বাদ দিয়ে ডেটা সঞ্চয় করার জন্য কখনই কোনও ডিওএম ব্যবহার করা উচিত নয়। এটি পুরোপুরি খারাপ। হেইনসির কাছে কেবল জেএস ভারতে নিযুক্ত করার জন্য আরও ভাল ধারণা রয়েছে।
coblr

13

স্মার্ট-IP.net জিও-আইপি এপিআই ব্যবহার করে । উদাহরণস্বরূপ, jQuery ব্যবহার করে:

$(document).ready( function() {
    $.getJSON( "http://smart-ip.net/geoip-json?callback=?",
        function(data){
            alert( data.host);
        }
    );
});

15
"পরিষেবা অস্থায়ী অনুপলব্ধ"।
ইয়াগো

ক্লায়েন্টের আইপি ঠিকানা, এসএসএল সক্ষম এবং কোনও সীমাবদ্ধতা পেতে একটি সহজ এপিআই [ geoip.immanuel.co/myip] লিখেছেন
ইমমানুয়েল

12

আপনি যদি একরকম বাহ্যিক পরিষেবা না ব্যবহার করেন তবে সাধারণভাবে সম্ভব নয়।


প্রকৃতপক্ষে, জাভাস্ক্রিপ্ট ব্যবহার করে তৃতীয় পক্ষের পরিষেবা যেমন আইপ্রেজিস্ট্রি (অস্বীকৃতি: আমি পরিষেবাটি পরিচালনা করি) উপর নির্ভর করে ব্যবহার করা সম্ভব : ipregistry.co/docs/getting-location-from-ip-adressress#javascript আপনি আইপি ঠিকানা পেতে পারেন , এবং হুমকি ডেটা সহ অনেকগুলি সম্পর্কিত তথ্য, সমস্তই একক কল।
লরেন্ট

9

JQuery সহ আপনার আইপি পান

আপনি আপনার সার্বজনীন আইপি ঠিকানাটি জেএসের এক লাইনের সাথে পেতে পারেন? একটি নিখরচায় পরিষেবা রয়েছে যা এটি আপনার জন্য সরবরাহ করে এবং একটি রিকোয়েস্ট অনুরোধ হ'ল আপনাকে যা করতে হবে তা হ'ল:

   $.get('http://jsonip.com/', function(r){ console.log(r.ip); });

উপরের স্নিপেটটি কাজ করতে আপনার ব্রাউজারকে সিওআরএসকে সমর্থন করতে হবে (ক্রস-অরিজিন অনুরোধ ভাগ করে নেওয়া)। অন্যথায় একটি সুরক্ষা ব্যতিক্রম নিক্ষেপ করা হবে। পুরানো ব্রাউজারগুলিতে, আপনি এই সংস্করণটি ব্যবহার করতে পারেন, যা একটি JSON-P অনুরোধ ব্যবহার করে:

   $.getJSON('http://jsonip.com/?callback=?', function(r){ console.log(r.ip); });

9

আপনি userinfo.io জাভাস্ক্রিপ্ট লাইব্রেরি ব্যবহার করতে পারেন ।

<script type="text/javascript" src="userinfo.0.0.1.min.js"></script>

UserInfo.getInfo(function(data) {
  alert(data.ip_address);
}, function(err) {
  // Do something with the error
});

আপনি স্ক্রিপ্টটি লোড করতে প্রয়োজনীয় জেএসও ব্যবহার করতে পারেন।

এটি আপনাকে আপনার দর্শকের আইপি ঠিকানা এবং সেইসাথে এর অবস্থানের (দেশ, শহর ইত্যাদি) কয়েকটি ডেটা দেবে। এটি ম্যাক্সমাইন্ড জিওআইপি ডাটাবেসের উপর ভিত্তি করে।

দাবি অস্বীকার: আমি এই গ্রন্থাগারটি লিখেছি


8

জাভাস্ক্রিপ্ট / jQuery ক্লায়েন্টের আইপি ঠিকানা এবং অবস্থান (দেশ, শহর) পান

আপনাকে কেবল সার্ভারের সাথে "src" লিঙ্ক সহ একটি ট্যাগ এম্বেড করতে হবে। সার্ভারটি "কোডহেল্পার_ইপ "টিকে অবজেক্ট / জেএসএন হিসাবে ফিরিয়ে দেবে এবং আপনি এখনই এটি ব্যবহার করতে পারবেন।

// First, embed this script in your head or at bottom of the page.
<script language="Javascript" src="http://www.codehelper.io/api/ips/?js"></script>
// You can use it
<script language="Javascript">
    alert(codehelper_ip.IP);
    alert(codehelper_ip.Country);
</script>

জাভাস্ক্রিপ্টে আরও তথ্য রিয়েল আইপি অ্যাড্রেস প্লাস কান্ট্রি সনাক্ত করুন

আপনি যদি জ্যাকুয়ারি ব্যবহার করছেন, আপনি চেষ্টা করতে পারেন:

console.log(codehelper_ip); 

এটি আপনাকে ফিরে আসা অবজেক্ট সম্পর্কে আরও তথ্য প্রদর্শন করবে।

আপনি যদি কলব্যাক ফাংশন চান, দয়া করে এটি চেষ্টা করুন:

// First, embed this script in your head or at bottom of the page.
<script language="Javascript" src="http://www.codehelper.io/api/ips/?callback=yourcallback"></script>
// You can use it
<script language="Javascript">
    function yourcallback(json) {
       alert(json.IP);
     }
</script>

1
এমডিএনlanguagetype="text/javascript"
অ্যালেক্স কে

@ অ্যালেক্স ইতিমধ্যে উল্লিখিত হিসাবে, ভাষা হ্রাস করা হয় এবং শুধুমাত্র উত্তরাধিকার কোডে ব্যবহৃত হয়। পরিবর্তে সর্বাধিক সামঞ্জস্যের জন্য 'টাইপ = "পাঠ্য / জাভাস্ক্রিপ্ট" "ব্যবহার করুন।
গৌতম সি।

1
শুধু এফওয়াইআই - এইচটিএমএল 5 এর জন্য টাইপ ফিল্ডের প্রয়োজন হয় না (জেএস ডিফল্ট হয়)। w3schools.com/tags/att_script_type.asp
pmont

ঠিক যদি আপনি এই অন্যান্য মন্তব্যগুলি মিস করেন তবে ভাষার পরিবর্তে আপনার টাইপ ব্যবহার করা উচিত
মাইক

8

অ্যাপস্পট ডটকম কলব্যাকের পরিষেবাটি উপলভ্য নয়। ipinfo.io মনে হচ্ছে কাজ করছে।

আমি একটি অতিরিক্ত পদক্ষেপ নিয়েছি এবং AngularJS ব্যবহার করে সমস্ত ভূ-তথ্য পুনরুদ্ধার করেছি। (রিকার্ডোকে ধন্যবাদ) এটি পরীক্ষা করে দেখুন।

<div ng-controller="geoCtrl">
  <p ng-bind="ip"></p>
  <p ng-bind="hostname"></p>
  <p ng-bind="loc"></p>
  <p ng-bind="org"></p>
  <p ng-bind="city"></p>
  <p ng-bind="region"></p>
  <p ng-bind="country"></p>
  <p ng-bind="phone"></p>
</div>
<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="http://code.angularjs.org/1.2.12/angular.min.js"></script>
<script src="http://code.angularjs.org/1.2.12/angular-route.min.js"></script>
<script>
'use strict';
var geo = angular.module('geo', [])
.controller('geoCtrl', ['$scope', '$http', function($scope, $http) {
  $http.jsonp('http://ipinfo.io/?callback=JSON_CALLBACK')
    .success(function(data) {
    $scope.ip = data.ip;
    $scope.hostname = data.hostname;
    $scope.loc = data.loc; //Latitude and Longitude
    $scope.org = data.org; //organization
    $scope.city = data.city;
    $scope.region = data.region; //state
    $scope.country = data.country;
    $scope.phone = data.phone; //city area code
  });
}]);
</script>

এখানে পৃষ্ঠার কার্যকারীতা: http://www.orangecountyseomarketing.com/projects/_ip_angularjs.html


8

আপনি যদি কোনও ফাইল অ্যাভওয়ে অন্তর্ভুক্ত করেন তবে আপনি একটি সহজ এজাক্স পেতে পারেন:

function ip_callback() {
    $.get("ajax.getIp.php",function(data){ return data; }
}

এবং ajax.getIp.phpএটি হবে:

<?=$_SERVER['REMOTE_ADDR']?>

8

আমি আসলেই পচ্ছ্ন্দ করি api.ipify.org কারণ এটি এইচটিটিপি এবং এইচটিটিপিএস উভয়ই সমর্থন করে।

এখানে আইপি ব্যবহারের কয়েকটি উদাহরণ রয়েছে api.ipify.org jQuery করে ।

এইচটিপিএস-এর মাধ্যমে জেএসএন ফর্ম্যাট

https://api.ipify.org?format=json

$.getJSON("https://api.ipify.org/?format=json", function(e) {
    alert(e.ip);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

এইচটিটিপি-র মাধ্যমে জেএসএন ফর্ম্যাট

http://api.ipify.org?format=json

$.getJSON("http://api.ipify.org/?format=json", function(e) {
    alert(e.ip);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

এইচটিটিপিএস-এর মাধ্যমে পাঠ্য বিন্যাস

আপনি যদি এটি JSON এ না চান তবে এইচটিটিপিএসের উপর একটি সরল পাঠ্য প্রতিক্রিয়াও রয়েছে

https://api.ipify.org

HTTP- র মাধ্যমে পাঠ্য বিন্যাস

এবং এইচটিটিপি-র উপরে একটি সরল পাঠ্য প্রতিক্রিয়াও রয়েছে

http://api.ipify.org

8

Ipdata.co ব্যবহার করুন ।

এপিআই জিওলোকেশন ডেটাও সরবরাহ করে এবং 10 টি বিশ্বব্যাপী শেষ পয়েন্টগুলি হ্যান্ডল করতে সক্ষম প্রতিটি> 800 এম অনুরোধের দিনে!

এই উত্তরটি একটি 'পরীক্ষা' API কী ব্যবহার করে যা খুব সীমাবদ্ধ এবং কেবল কয়েকটি কল পরীক্ষার জন্য বোঝানো হয়। আপনার নিজের ফ্রি এপিআই কী এর জন্য সাইনআপ করুন এবং বিকাশের জন্য প্রতিদিন 1500 টি অনুরোধ পান get

$.get("https://api.ipdata.co?api-key=test", function (response) {
    $("#response").html(response.ip);
}, "jsonp");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<pre id="response"></pre>


7

ক্লায়েন্ট কম্পিউটারের আইপি ঠিকানা পাওয়ার কোনও নির্ভরযোগ্য উপায় নেই।

এটি কিছু সম্ভাবনার মধ্য দিয়ে যায়। জাভা ব্যবহার করে এমন কোডটি ভঙ্গ হবে যদি ব্যবহারকারীর একাধিক ইন্টারফেস থাকে।

http://nanoagent.blogspot.com/2006/09/how-to-find-evaluate-remoteaddrclients.html

অন্যান্য উত্তরগুলি এখানে দেখে মনে হচ্ছে আপনি ক্লায়েন্টের সর্বজনীন আইপি ঠিকানা পেতে চাইতে পারেন, এটি সম্ভবত রাউটারের ঠিকানা যা তারা ইন্টারনেটে সংযোগ করার জন্য ব্যবহার করছেন। অন্যান্য উত্তর এখানে অনেক সম্পর্কে কথা বলতে। অনুরোধটি গ্রহণ করার জন্য এবং আইপি ঠিকানার সাথে সাড়া দেওয়ার পরিবর্তে অন্য কারও পরিষেবাদির উপর নির্ভর করে আপনার কাজ চালিয়ে যেতে বা চালিয়ে যেতে পারে তার জন্য আপনার নিজের সার্ভারের সাইড পেজ তৈরি এবং হোস্টিংয়ের পরামর্শ দেব।


7

আমি এইচটিএমএল পৃষ্ঠায় তথ্য সঞ্চয় করতে চাইলে আমি প্রচুর ব্যবহার করি এমন একটি পদ্ধতি অফার করতে যাচ্ছি, এবং আমার জাভাস্ক্রিপ্টটি জাভাস্ক্রিপ্টে প্যারামিটারগুলি পাস না করে তথ্য পড়তে চাই। আপনার স্ক্রিপ্টটি ইনলাইন না করে বাহ্যিকভাবে উল্লেখ করা হলে এটি বিশেষত কার্যকর useful

তবে এটি "সার্ভারের কোনও পার্শ্ব স্ক্রিপ্ট নয়" এর মানদণ্ড পূরণ করে না। তবে আপনি যদি এইচটিএমএল-তে সার্ভার সাইড স্ক্রিপ্টিং অন্তর্ভুক্ত করতে পারেন তবে এটি করুন:

আপনার এইচটিএমএল পৃষ্ঠার নীচে গোপন লেবেল উপাদানগুলি শেষ বডি ট্যাগের ঠিক উপরে তৈরি করুন।

আপনার লেবেলটি দেখতে এমন হবে:

<label id="ip" class="hiddenlabel"><?php echo $_SERVER['REMOTE_ADDR']; ?></label>

একটি ক্লাস বলা hiddenlabelএবং সেট করা নিশ্চিত করুনvisibility:hidden যাতে কেউ লেবেলটি আসলে না দেখে। আপনি লুকানো লেবেলে এইভাবে প্রচুর জিনিস সঞ্চয় করতে পারেন।

এখন, আপনার জাভাস্ক্রিপ্টে, লেবেলে সঞ্চিত তথ্য পুনরুদ্ধার করতে (এই ক্ষেত্রে ক্লায়েন্টের আইপি ঠিকানা), আপনি এটি করতে পারেন:

var ip = document.getElementById("ip").innerHTML;

এখন আপনার পরিবর্তনশীল "ip" আইপি ঠিকানার সমান। এখন আপনি আপনার এপিআই অনুরোধে আইপি পাস করতে পারেন।

* 2 বছর লেটার সম্পাদনা করুন * দুটি ছোটখাট সংশোধন:

আমি নিয়মিত এই পদ্ধতিটি ব্যবহার করি তবে লেবেলটি কল করি class="data"কারণ বাস্তবে এটি ডেটা সঞ্চয় করার একটি উপায়। শ্রেণীর নাম "লুকানো" একটি বোকামি নাম st

দ্বিতীয় পরিবর্তনটি পরিবর্তে স্টাইল শীটে রয়েছে visibility:hidden:

.data{
    display:none;
}

... এটি করার আরও ভাল উপায়।


3
ডিওমে ডেটা সংরক্ষণ করবেন না। কেউ কেন এমন পরামর্শ দিবে, এমনকি 2 বছর পরে? আপনি যদি এইচটিএমএল ফাইলে যা কিছু ইনজেক্ট করতে পারেন তবে ঠিক সেই মানটিকে একটি জেএস ভেরিয়েবলের মধ্যে ইনজেক্ট করুন। <script> var ip = <? php প্রতিধ্বনি '_SERVER [' REMOTE_ADDR ']; ?> </ স্ক্রিপ্ট>। কমপক্ষে স্ক্রিন পাঠকরা এটি মিস করবেন এবং কোনও এলিমেন্টবাইআইডি বা $ ('# বোকামি') প্রয়োজন নেই।
coblr

@ ফ্র্যাক্টালস্পন, যে কারণে আপনি একটি .js ফাইলে পিএইচপি কোড সন্নিবেশ করতে পারবেন না। ভাবেন নি যে, স্মার্ট প্যান্টস! ;)
টার্কাস

ঠিক আছে, আপনি যদি <স্ক্রিপ্ট টাইপ = "টেক্সট / জাভাস্ক্রিপ্ট" src = "পথ / থেকে / অভিনব / জাভাস্ক্রিপ্ট.এফপি"> </script> করেন তবে আপনি কেন এটি করবেন তা নিশ্চিত নই। আমার বক্তব্যটি হ'ল যদি পিএইচপি এইচটিএমএল এটি রেন্ডার করে এমন কোনও কিছু sertোকাতে পারে তবে সর্বোত্তম অনুশীলন হ'ল এটি কোনও ডম উপাদানটির চেয়ে একটি ইনলাইন স্ক্রিপ্ট ট্যাগের মধ্যে একটি জেএস ভেরিয়েবলের মধ্যে একটি মান সন্নিবেশ করানো উচিত যা আপনাকে তখন বিশ্লেষণ করতে হবে would ব্যবহার করার জন্য, এবং আপনি এটি প্রতিরোধের জন্য অতিরিক্ত ব্যবস্থা না নিলে পর্দার পাঠকরা সম্ভবত এটি পড়তে পারেন।
coblr

আপনি ডিওমে হোল্ডিং ডেটা যুক্ত করতে বা না যুক্ত করার কোনও সঠিক কারণ নেই এবং এটি করার যথেষ্ট কারণ রয়েছে। আসলে, এই কারণগুলি আমার জবাব, যদি আপনি এটি আবার পড়তে যত্নবান হন। এটি নির্ভরযোগ্য, নিয়ন্ত্রণে রাখা সহজ এবং বিশেষত কার্যকর যখন আপনার জাভাস্ক্রিপ্ট ফাইলটি কোনও প্রত্যন্ত সাইটে ঘটে। রিমোট স্ক্রিপ্টের কথা বললে, আপনার "জাভাস্ক্রিপ্ট.পিএফপি" এর উদাহরণটি একটি ভয়াবহ ধারণা, এবং সম্ভবত তা কার্যকর হবে না। দূরবর্তী স্ক্রিপ্টগুলির যেমন DISQUS হিসাবে বিবেচনা করুন।
তারকাস

3
ডোম ডেটা স্টোরেজ কেন খারাপ তা সম্পর্কে আপনার অন্য মন্তব্যে .. ভাল, আপনি এখনও আপনার গন্তব্যটিতে আলতো করে একটি প্রাচীর আঘাত করে একটি গাড়ী থামাতে পারেন, তবে কাজের জন্য আরও ভাল সরঞ্জাম রয়েছে। আমরা এখন আরও ভাল জানি এবং এটি হ্রাস করার জন্য দুর্দান্ত ফ্রেমওয়ার্ক রয়েছে। আমি এমন জায়গায় কাজ করেছি যেখানে ডিওএস জেএসের জন্য মাত্র একটি বিশাল কনফিগারেশন ফাইল ছিল এবং পুনরায় স্থাপনের সময় এটি একটি দুঃস্বপ্ন। আপনি যদি মনে করেন যে <স্ক্রিপ্ট src = "काहीतरी.php"> ব্যবহার করা একটি "ক্রুড হ্যাক", তবে ডিওএম-তে ডেটা সংরক্ষণ করা যা জাভাস্ক্রিপ্টের অভ্যন্তরে কেবল মূল্য আছে, তবে আমি সত্যিই আনন্দিত যে আমরা কাজ করি না একসাথে এবং আবার, আনন্দের সাথে একমত সম্মত হবে। :)
coblr



6

আসল উত্তরের প্রথম : নিজের আইপি ঠিকানা জানতে খাঁটি ক্লায়েন্ট-সাইড এক্সিকিউটড কোড ব্যবহার করা সম্ভব নয়।

তবে আপনি কেবল https://api.muctool.de/Wois এর জন্য একটি জিইটি করতে পারেন এবং কোনও ক্লায়েন্টের আইপি ঠিকানা পাওয়ার মতো কিছু পেতে পারেন

{
"ip": "88.217.152.15",
"city": "Munich",
"isp": "M-net Telekommunikations GmbH",
"country": "Germany",
"countryIso": "DE",
"postalCode": "80469",
"subdivisionIso": "BY",
"timeZone": "Europe/Berlin",
"cityGeonameId": 2867714,
"countryGeonameId": 2921044,
"subdivisionGeonameId": 2951839,
"ispId": 8767,
"latitude": 48.1299,
"longitude": 11.5732,
"fingerprint": "61c5880ee234d66bded68be14c0f44236f024cc12efb6db56e4031795f5dc4c4",
"session": "69c2c032a88fcd5e9d02d0dd6a5080e27d5aafc374a06e51a86fec101508dfd3",
"fraud": 0.024,
"tor": false
}

5

আপনি এই পুরো ক্লায়েন্টের পক্ষে এবং বেশিরভাগ জাভাস্ক্রিপ্টে কোনও ফ্ল্যাশ অবজেক্ট ব্যবহার করে জেএস কল করতে পারেন। ফ্ল্যাশ স্থানীয় মেশিনের আইপি ঠিকানাটি অ্যাক্সেস করতে পারে যা খুব কার্যকর নাও হতে পারে।


4
var call_to = "http://smart-ip.net/geoip-json?callback=?";

$.getJSON(call_to, function(data){
   alert(data.host);
});

data.hostআইপি ঠিকানা। আপনার ব্রাউজার থেকে কেবল এটি কল করুন।

http://smart-ip.net/geoip-json?callback=? [উদ্ধৃতি ব্যতীত] এবং আইপি পান।


দুঃখিত, জাভাস্ক্রিপ্টে $ এর অর্থ কী?
প্রেতাত্মা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.