উত্তর:
আমি এমন একটি ওয়েব পরিষেবা ব্যবহার করব যা জেএসএনকে ফিরিয়ে দিতে পারে (জিনিসগুলি আরও সহজ করার জন্য 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"
}
সীমাবদ্ধতা:
এটি ব্যবহার করে দেখুন: 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"
}
সীমাবদ্ধতা:
এটি ব্যবহার করে দেখুন: 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
}
সীমাবদ্ধতা:
এটি ব্যবহার করে দেখুন: 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": "$",
"geoplugin_currencySymbol_UTF8": "$",
"geoplugin_currencyConverter": 1.4239
}
সীমাবদ্ধতা:
এটি ব্যবহার করে দেখুন: 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
সীমাবদ্ধতা:
এটি ব্যবহার করে দেখুন: 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"
}
সীমাবদ্ধতা:
এটি ব্যবহার করে দেখুন: 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": ""
}
সীমাবদ্ধতা:
এটি ব্যবহার করে দেখুন: 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
}
}
সীমাবদ্ধতা:
এটি ব্যবহার করে দেখুন: 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"
]
}
সীমাবদ্ধতা:
এটি ব্যবহার করে দেখুন: 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"
}
}
সীমাবদ্ধতা:
এটি ব্যবহার করে দেখুন: 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"
}
সীমাবদ্ধতা:
এটি ব্যবহার করে দেখুন: 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"
}
সীমাবদ্ধতা:
এটি ব্যবহার করে দেখুন: 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"
}
সীমাবদ্ধতা:
এটি ব্যবহার করে দেখুন: 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
}
}
সীমাবদ্ধতা:
এটি ব্যবহার করে দেখুন: 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
}
}
সীমাবদ্ধতা:
এটি ব্যবহার করে দেখুন: 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://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 আপনি এসএসএল সমর্থন এর মতো আরও বৈশিষ্ট্য চাইলে এই পরিষেবাগুলির বেশিরভাগই একটি প্রদত্ত স্তরের অফার দেয়।
এছাড়াও, যেমন স্কোবালজিক নীচের মন্তব্যে উল্লিখিত হয়েছে, অনুরোধের কোটাগুলি বেশিরভাগই একাডেমিক যেহেতু এটি ক্লায়েন্ট-সাইডে ঘটছে এবং বেশিরভাগ শেষ ব্যবহারকারীরা কোটা ছাড়িয়ে যাবে না।
আপডেট
চূড়ান্ত আপডেট
এই সমাধানটি আর কাজ করবে না কারণ ব্রাউজারগুলি ওয়েলব্র্যাটিক ফাঁস ফিক্স করছে: আরও তথ্যের জন্য এই অন্যান্য প্রশ্নটি পড়ুন: আরটিসিআইসিস্যান্ডিডিট আর আইপি ফেরত আসবে না
আপডেট : আমি সর্বদা কোডের একটি মিনি / 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 থেকে) পড়া আমরা ব্যবহারকারীর আইপি বলতে পারি।
আমি যেখান থেকে কোড নিয়েছি -> উত্স
আপনি এটি 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 তারিখে স্থায়ীভাবে বন্ধ হয়ে গেছে ।
Error Over Quota This application is temporarily over its serving quota. Please try again later.
এখানে বেশিরভাগ উত্তর "চারপাশে কাজ করে" দ্বারা সার্ভার-সাইড কোডের প্রয়োজন ... অন্য কারও সার্ভারকে আঘাত করে। কোনটি সম্পূর্ণ বৈধ কৌশল, যদি না আপনি কোনও সার্ভারকে আঘাত না করেই আইপি ঠিকানাটি পাওয়ার প্রয়োজন না হন।
Ditionতিহ্যগতভাবে এটি কোনও ধরণের প্লাগইন ছাড়াই সম্ভব ছিল না (এবং তারপরেও আপনি সম্ভবত কোনও নেট রাউটারের পেছনে থাকলে ভুল আইপি ঠিকানাটি পেয়ে যাবেন), তবে ওয়েবআরটিসিটির আবির্ভাবের সাথে এটি করা সম্ভব হয় .. । যদি আপনি লক্ষ্য করে করছি ব্রাউজারে সমর্থন করা WebRTC (বর্তমানে: ফায়ারফক্স, ক্রোম এবং অপেরা)।
আপনি কীভাবে ওয়েবআরটিটিসি ব্যবহার করে দরকারী ক্লায়েন্টের আইপি অ্যাড্রেসগুলি পুনরুদ্ধার করতে পারেন সে সম্পর্কে বিশদ জানতে মিডোর জবাবটি পড়ুন ।
আপনি 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
এটা চেষ্টা কর
$.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);
});
});
আপনি পারবেন না। আপনাকে একটি সার্ভার জিজ্ঞাসা করতে হবে।
পরীক্ষা করে দেখুন 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
দ্রষ্টব্য : ডেমো চালানোর আগে অ্যাডব্লক প্লাস / ইউব্লক ও কো বন্ধ করুন .. অন্যথায়, এটি ঠিক কাজ করবে না।
আইপিফাই দলের সাথে আমার কিছু করার নেই । আমি কেবল মনে করি এটি হাস্যকরভাবে শীতল যে কেউ সাধারণের জন্য এমন একটি পরিষেবা সরবরাহ করবে।
আপনি এর জন্য আমার পরিষেবা 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
আপনার পৃষ্ঠাতে এই কোডটি অন্তর্ভুক্ত করুন: <script type="text/javascript" src="http://l2.io/ip.js"></script>
আরও ডক এখানে
আমি বলব চাদ এবং মাল্টার দুর্দান্ত উত্তর রয়েছে। যাইহোক, তাদের জটিল। সুতরাং আমি এই কোডটি প্রস্তাব করি যা আমি দেশের প্লাগইন অনুসারে বিজ্ঞাপন থেকে পেয়েছি
<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>
প্রশ্নটি বিশেষত তৃতীয় পক্ষের স্ক্রিপ্ট ব্যবহার না করার কথা উল্লেখ করেছে। অন্য কোন উপায় নেই। জাভাস্ক্রিপ্ট আপনার আইপি জানতে পারে না। তবে জাভাস্ক্রিপ্টের মাধ্যমে অ্যাক্সেস করা যায় এমন অন্যান্য সার্ভারগুলি কোনও সমস্যা ছাড়াই কাজ করতে পারে।
এই প্রশ্নের দুটি ব্যাখ্যা রয়েছে। বেশিরভাগ লোকেরা "ক্লায়েন্ট আইপি" ব্যাখ্যার অর্থ পাবলিক আইপি অ্যাড্রেসটি বোঝায় যে ল্যানের বাইরে এবং ইন্টারনেটে ওয়েব সার্ভারের দেখা। যদিও এটি বেশিরভাগ ক্ষেত্রে ক্লায়েন্ট কম্পিউটারের আইপি ঠিকানা নয়
আমার জাভাস্ক্রিপ্ট সফটওয়্যারটি হোস্ট করছে এমন ব্রাউজারটি চালাচ্ছে এমন কম্পিউটারের আসল আইপি ঠিকানাটি (যা প্রায় সর্বদা ল্যানের স্থানীয় আইপি ঠিকানা যা 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>
একটি সহজ এবং নিখরচায় দৃষ্টিভঙ্গি রয়েছে যা আপনার দর্শনার্থীকে কোনও অনুমতি চাইবে না।
এটি http://freegeoip.net/json এ খুব সাধারণ অ্যাজ্যাক্স পোস্টের অনুরোধ জমা দেওয়ার অন্তর্ভুক্ত । আপনি একবার আপনার অবস্থানের তথ্য জেএসএন-তে পেয়ে গেলে, পৃষ্ঠাটি আপডেট করে বা কোনও নতুনকে পুনর্নির্দেশ করে আপনি সেই অনুযায়ী প্রতিক্রিয়া জানান।
আপনি এখানে অবস্থান সম্পর্কিত তথ্যের জন্য আপনার অনুরোধটি কীভাবে জমা দিন:
jQuery.ajax( {
url: '//freegeoip.net/json/',
type: 'POST',
dataType: 'jsonp',
success: function(location) {
console.log(location)
}
} );
ঠিক আছে, আমি প্রশ্নটি থেকে আঁকছি, তবে আমার আজ একইরকম প্রয়োজন ছিল এবং যদিও আমি জাভাস্ক্রিপ্ট ব্যবহার করে ক্লায়েন্টের কাছ থেকে আইডিটি খুঁজে পাইনি, আমি নিম্নলিখিতটি করেছি did
সার্ভারের দিকে: -
<div style="display:none;visibility:hidden" id="uip"><%= Request.UserHostAddress %></div>
জাভাস্ক্রিপ্ট ব্যবহার করে
var ip = $get("uip").innerHTML;
আমি এএসপি.নেট আজাক্স ব্যবহার করছি তবে আপনি $ get () এর পরিবর্তে getElementById ব্যবহার করতে পারেন।
যা ঘটছে তা হ'ল, আমি পৃষ্ঠায় একটি লুকানো ডিভ উপাদান পেয়েছি যা ব্যবহারকারীর আইপি সার্ভার থেকে রেন্ডার হয়েছে। জাভাস্ক্রিপ্টের চেয়ে আমি কেবল সেই মানটি লোড করি।
এটি আপনার মতো অনুরূপ প্রয়োজনীয়তার সাথে কিছু লোকের পক্ষে সহায়ক হতে পারে (আমার মতো আমি যখন এটি বের করিনি)।
চিয়ার্স!
<script>var uip='<%= Request.UserHostAddress %>';</script>
?
স্মার্ট-IP.net জিও-আইপি এপিআই ব্যবহার করে । উদাহরণস্বরূপ, jQuery ব্যবহার করে:
$(document).ready( function() {
$.getJSON( "http://smart-ip.net/geoip-json?callback=?",
function(data){
alert( data.host);
}
);
});
আপনি যদি একরকম বাহ্যিক পরিষেবা না ব্যবহার করেন তবে সাধারণভাবে সম্ভব নয়।
JQuery সহ আপনার আইপি পান
আপনি আপনার সার্বজনীন আইপি ঠিকানাটি জেএসের এক লাইনের সাথে পেতে পারেন? একটি নিখরচায় পরিষেবা রয়েছে যা এটি আপনার জন্য সরবরাহ করে এবং একটি রিকোয়েস্ট অনুরোধ হ'ল আপনাকে যা করতে হবে তা হ'ল:
$.get('http://jsonip.com/', function(r){ console.log(r.ip); });
উপরের স্নিপেটটি কাজ করতে আপনার ব্রাউজারকে সিওআরএসকে সমর্থন করতে হবে (ক্রস-অরিজিন অনুরোধ ভাগ করে নেওয়া)। অন্যথায় একটি সুরক্ষা ব্যতিক্রম নিক্ষেপ করা হবে। পুরানো ব্রাউজারগুলিতে, আপনি এই সংস্করণটি ব্যবহার করতে পারেন, যা একটি JSON-P অনুরোধ ব্যবহার করে:
$.getJSON('http://jsonip.com/?callback=?', function(r){ console.log(r.ip); });
আপনি 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
});
আপনি স্ক্রিপ্টটি লোড করতে প্রয়োজনীয় জেএসও ব্যবহার করতে পারেন।
এটি আপনাকে আপনার দর্শকের আইপি ঠিকানা এবং সেইসাথে এর অবস্থানের (দেশ, শহর ইত্যাদি) কয়েকটি ডেটা দেবে। এটি ম্যাক্সমাইন্ড জিওআইপি ডাটাবেসের উপর ভিত্তি করে।
দাবি অস্বীকার: আমি এই গ্রন্থাগারটি লিখেছি
জাভাস্ক্রিপ্ট / 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>
অ্যাপস্পট ডটকম কলব্যাকের পরিষেবাটি উপলভ্য নয়। 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
আমি আসলেই পচ্ছ্ন্দ করি 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://api.ipify.org
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>
ক্লায়েন্ট কম্পিউটারের আইপি ঠিকানা পাওয়ার কোনও নির্ভরযোগ্য উপায় নেই।
এটি কিছু সম্ভাবনার মধ্য দিয়ে যায়। জাভা ব্যবহার করে এমন কোডটি ভঙ্গ হবে যদি ব্যবহারকারীর একাধিক ইন্টারফেস থাকে।
http://nanoagent.blogspot.com/2006/09/how-to-find-evaluate-remoteaddrclients.html
অন্যান্য উত্তরগুলি এখানে দেখে মনে হচ্ছে আপনি ক্লায়েন্টের সর্বজনীন আইপি ঠিকানা পেতে চাইতে পারেন, এটি সম্ভবত রাউটারের ঠিকানা যা তারা ইন্টারনেটে সংযোগ করার জন্য ব্যবহার করছেন। অন্যান্য উত্তর এখানে অনেক সম্পর্কে কথা বলতে। অনুরোধটি গ্রহণ করার জন্য এবং আইপি ঠিকানার সাথে সাড়া দেওয়ার পরিবর্তে অন্য কারও পরিষেবাদির উপর নির্ভর করে আপনার কাজ চালিয়ে যেতে বা চালিয়ে যেতে পারে তার জন্য আপনার নিজের সার্ভারের সাইড পেজ তৈরি এবং হোস্টিংয়ের পরামর্শ দেব।
আমি এইচটিএমএল পৃষ্ঠায় তথ্য সঞ্চয় করতে চাইলে আমি প্রচুর ব্যবহার করি এমন একটি পদ্ধতি অফার করতে যাচ্ছি, এবং আমার জাভাস্ক্রিপ্টটি জাভাস্ক্রিপ্টে প্যারামিটারগুলি পাস না করে তথ্য পড়তে চাই। আপনার স্ক্রিপ্টটি ইনলাইন না করে বাহ্যিকভাবে উল্লেখ করা হলে এটি বিশেষত কার্যকর 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;
}
... এটি করার আরও ভাল উপায়।
$.getJSON("http://jsonip.com?callback=?", function (data) {
alert("Your ip address: " + data.ip);
});
এটি ব্যবহার করে দেখুন: http://httpbin.org/ip (অথবা https://httpbin.org/ip )
Https সহ উদাহরণ:
$.getJSON('https://httpbin.org/ip', function(data) {
console.log(data['origin']);
});
সূত্র: http://httpbin.org/
আসল উত্তরের প্রথম : নিজের আইপি ঠিকানা জানতে খাঁটি ক্লায়েন্ট-সাইড এক্সিকিউটড কোড ব্যবহার করা সম্ভব নয়।
তবে আপনি কেবল 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
}
আপনি এই পুরো ক্লায়েন্টের পক্ষে এবং বেশিরভাগ জাভাস্ক্রিপ্টে কোনও ফ্ল্যাশ অবজেক্ট ব্যবহার করে জেএস কল করতে পারেন। ফ্ল্যাশ স্থানীয় মেশিনের আইপি ঠিকানাটি অ্যাক্সেস করতে পারে যা খুব কার্যকর নাও হতে পারে।
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=?
[উদ্ধৃতি ব্যতীত] এবং আইপি পান।
$.getJSON('//freegeoip.net/json/?callback=?', function(data) { if (!data || !data.ip) alert('IP not found'); }).fail(function() { alert('$.getJSON() request failed'); });