दिलचस्प पोस्ट
वादा – क्या एक वादा रद्द करना संभव है? सीएसएस के माध्यम से आदेश सूची में दूसरी पंक्ति के लिए इंडेंट कैसे रखा जाए? मॉड्यूल घोषणा के लिए कोणीय जे एस सर्वोत्तम अभ्यास? डायनामिक रूप से iframe src सेट करें वास्तविक छवि डाउनलोड करते समय छवि को लोड करने के तरीके को कैसे देखें नोड। जेएस क्या है? पायथन में टाइमआउट के साथ कीबोर्ड इनपुट एक MySQL क्वेरी को सीएसवी में कनवर्ट करने के लिए PHP कोड अपलोड करने से पहले फ़ाइल का आकार प्रतिबंधित करने, jQuery का उपयोग करना दो ग्राफ़ नोड्स के बीच सभी पथ खोजें सी ++ में उत्पन्न संयोजन दस्तावेज़ों को कैसे ठीक से मर्ज करना है? माता-पिता की मौत के बाद बच्चे की प्रक्रिया कैसे शुरू हो जाती है? मैं एक ही डेटा पर दो बार पुनरावृत्त नहीं क्यों कर सकता हूं? एक कस्टम बनाने का सही तरीका क्या है। NET अपवाद सीरिजलाजनीय है?

क्या मैं क्लाइंट-साइड जावास्क्रिप्ट का उपयोग कर एक DNS लुकअप (होस्टनाम आईपी एड्रेस) कर सकता हूं?

मैं क्लाइंट-साइड जावास्क्रिप्ट का उपयोग DNS क्लाइंट (होस्टनाम को आईपी एड्रेस) करने के लिए करना चाहता हूं जैसा कि ग्राहक के कंप्यूटर से देखा गया है क्या यह संभव है?

वेब के समाधान से एकत्रित समाधान "क्या मैं क्लाइंट-साइड जावास्क्रिप्ट का उपयोग कर एक DNS लुकअप (होस्टनाम आईपी एड्रेस) कर सकता हूं?"

जावास्क्रिप्ट मानक पुस्तकालय में मेजबान या आईपी-पते का कोई विचार नहीं है। इसलिए आपको अपने लिए होस्टनामों को देखने के लिए कुछ बाहरी सेवा का उपयोग करना होगा।

मैं एक सीजीआई-बिन की मेजबानी करने की सलाह देता हूं जो एक मेजबाननाम के आईपी-पता को देखता है और जावास्क्रिप्ट के माध्यम से पहुंचता है।

संपादित करें : इस प्रश्न ने मुझे एक खुजली दी, इसलिए मैंने Google ऐप इंजिन पर जेएसओएनपी वेबसाइर्स्ट डाल दिया जो क्लाइंट आईपी पते को रिटर्न करता है उपयोग:

<script type="application/javascript"> function getip(json){ alert(json.ip); // alerts the ip address } </script> <script type="application/javascript" src="http://jsonip.appspot.com/?callback=getip"> </script> 

याय, कोई सर्वर प्रॉक्सी की जरूरत नहीं है


शुद्ध जेएस नहीं कर सकते अगर आपके पास उसी डोमेन के तहत एक सर्वर स्क्रिप्ट है जो इसे प्रिंट करता है तो आप उसे पढ़ने के लिए XMLHttpRequest भेज सकते हैं।

बहुत देर हो चुकी है, लेकिन मुझे लगता है कि बहुत से लोग अभी भी "Google एयरलाइंस" के माध्यम से यहां आएंगे। वेबआरटीसी का उपयोग करने के लिए एक आधुनिक तरीका है जिसे सर्वर समर्थन की आवश्यकता नहीं है

https://hacking.ventures/local-ip-discovery-with-html5-webrtc-security-and-privacy-risk/

अगला कोड http://net.ipcalf.com/ पर कॉपी और पेस्ट करें।

 // NOTE: window.RTCPeerConnection is "not a constructor" in FF22/23 var RTCPeerConnection = /*window.RTCPeerConnection ||*/ window.webkitRTCPeerConnection || window.mozRTCPeerConnection; if (RTCPeerConnection) (function () { var rtc = new RTCPeerConnection({iceServers:[]}); if (window.mozRTCPeerConnection) { // FF needs a channel/stream to proceed rtc.createDataChannel('', {reliable:false}); }; rtc.onicecandidate = function (evt) { if (evt.candidate) grepSDP(evt.candidate.candidate); }; rtc.createOffer(function (offerDesc) { grepSDP(offerDesc.sdp); rtc.setLocalDescription(offerDesc); }, function (e) { console.warn("offer failed", e); }); var addrs = Object.create(null); addrs["0.0.0.0"] = false; function updateDisplay(newAddr) { if (newAddr in addrs) return; else addrs[newAddr] = true; var displayAddrs = Object.keys(addrs).filter(function (k) { return addrs[k]; }); document.getElementById('list').textContent = displayAddrs.join(" or perhaps ") || "n/a"; } function grepSDP(sdp) { var hosts = []; sdp.split('\r\n').forEach(function (line) { // cf http://tools.ietf.org/html/rfc4566#page-39 if (~line.indexOf("a=candidate")) { // http://tools.ietf.org/html/rfc4566#section-5.13 var parts = line.split(' '), // http://tools.ietf.org/html/rfc5245#section-15.1 addr = parts[4], type = parts[7]; if (type === 'host') updateDisplay(addr); } else if (~line.indexOf("c=")) { // http://tools.ietf.org/html/rfc4566#section-5.7 var parts = line.split(' '), addr = parts[2]; updateDisplay(addr); } }); } })(); else { document.getElementById('list').innerHTML = "<code>ifconfig | grep inet | grep -v inet6 | cut -d\" \" -f2 | tail -n1</code>"; document.getElementById('list').nextSibling.textContent = "In Chrome and Firefox your IP should display automatically, by the power of WebRTCskull."; } 

मेजबानी की गई जेएसओएनपी संस्करण एक जादू की तरह काम करता है, लेकिन ऐसा लगता है कि रात के समय में अधिकांश समय (पूर्वी समय) के दौरान यह अपने संसाधनों पर जाता है, इसलिए मुझे अपना खुद का संस्करण बनाना पड़ता था

इस प्रकार मैंने इसे PHP के साथ पूरा किया है:

 <?php header('content-type: application/json; charset=utf-8'); $data = json_encode($_SERVER['REMOTE_ADDR']); echo $_GET['callback'] . '(' . $data . ');'; ?> 

फिर जावास्क्रिप्ट ठीक पहले जैसा ही है, सिर्फ एक सरणी नहीं है:

 <script type="application/javascript"> function getip(ip){ alert('IP Address: ' + ip); } </script> <script type="application/javascript" src="http://www.anotherdomain.com/file.php?callback=getip"> </script> 

इतना ही आसान!

साइड नोट: यदि आप किसी भी सार्वजनिक वातावरण में यह प्रयोग कर रहे हैं, तो अपनी $ _GET को साफ करना सुनिश्चित करें!

मुझे पता है कि यह एक पुराना सवाल है, लेकिन मेरा समाधान दूसरों की सहायता कर सकता है

मुझे लगता है कि JSON (पी) सेवाओं जो इस आसान बनाने के लिए हमेशा के लिए पिछले नहीं है, लेकिन निम्नलिखित जावास्क्रिप्ट लेखन के समय मेरे लिए अच्छी तरह से काम करता है।

 <script type="text/javascript">function z (x){ document.getElementById('y').innerHTML=x.query }</script> <script type='text/javascript' src='http://ip-api.com/json/zero.eu.org?callback=z'></script> 

उपर्युक्त मेरे सर्वर का आईपी उस पृष्ठ पर स्थित है जिस पर वह स्थित है लेकिन स्क्रिप्ट को किसी भी आईपी को दूसरे डोमेन नाम में 'zero.eu.org' बदलकर संशोधित किया जा सकता है। यह मेरे पृष्ठ पर कार्रवाई में देखा जा सकता है: http://meon.zero.eu.org/

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

ब्राउज़र से डीएनएस लुकअप करने के लिए एक तृतीय-पक्ष सेवा है जो एक कॉरस अनुकूल रिस्ट एपीआई प्रदान करती है – https://exana.io/tools/dns/

मुझे नहीं लगता कि यह सुरक्षा कारणों के लिए अधिकांश ब्राउज़रों द्वारा अनुमत है, शुद्ध जावास्क्रिप्ट प्रसंग में, जैसा कि प्रश्न पूछता है।

शायद मुझे यह बात याद आती है लेकिन यहाँ नेवी आदमी के जवाब में यह बताया जाता है कि ब्राउज़र आपको 'अनुरोधकर्ता का' आईपी पता कह सकता है (यद्यपि केवल उनके सेवा प्रदाता)।

क्लाइंट द्वारा प्रदान किए जाने वाले पृष्ठ में एक स्क्रिप्ट टैग रखें (कॉल करने के लिए सोक है जो दूसरे को इंगित करता है) जो संतुलित नहीं है (मुझे पता है कि इसका अर्थ है कि आपको 2 सर्वर पर पहुंच की आवश्यकता है लेकिन होस्टिंग इन दिनों सस्ता है और आप सेट कर सकते हैं यह आसानी से और सस्ते में)।

यह ऐसा कोड है जिसे क्लाइंट पेज पर जोड़ा जाना चाहिए:

दूसरे सर्वर पर "someServerIown" आपको एएसपी, एएसपीएक्स या पीएचपी पृष्ठ की आवश्यकता है;

—– इसमें सर्वर कोड शामिल है:

"<% Response.Write (" var clientipaddress = '"और अनुरोध। श्वेतवर्णीय (" REMOTE_ADDR ") और"'; ")%>" (बाहरी डीबीएल उद्धरणों के बिना :-))

—- और इस कोड को स्क्रिप्ट टैग पर वापस लिखता है:

  var clientipaddress = '178.32.21.45'; 

यह प्रभावी रूप से एक जावास्क्रिप्ट वेरिएबल बनाता है जो आप कम से कम पेज पर जावास्क्रिप्ट के साथ एक्सेस कर सकते हैं।

उम्मीद है कि आप इस var का उपयोग करेंगे और वापस भेजने के लिए एक प्रपत्र नियंत्रण तैयार करने के लिए मान लिखें।

जब उपयोगकर्ता पोस्ट या अगले अनुरोध पर आपका जावास्क्रिप्ट और / या फॉर्म वेरिएबल के मान भेजता है जो "अन्य सर्फर आईने" ने आपके लिए भर दिया है, सर्वर पर वापस आप इसे पसंद करेंगे

यह है कि कैसे मैं गूंगा लोड बैलेंसर के आसपास आती हूं हमारे पास मुखौटे क्लाइंट आईपी पता है और इसे लोड बैलेंसर के रूप में प्रकट होता है …. गूंगा … गूंगा गूंगा गूंगा!

मैंने सही समाधान नहीं दिया है क्योंकि हर किसी की स्थिति थोड़ा अलग है अवधारणा हालांकि ध्वनि है यह भी ध्यान रखें कि यदि आप इसे एक HTTPS पेज पर कर रहे हैं तो आपके "अन्य सर्विजन" को उस सुरक्षित फ़ॉर्म में भी वितरित करना चाहिए अन्यथा क्लाइंट को मिश्रित सामग्री पर अलर्ट किया गया है। और अगर आपके पास https है तो सुनिश्चित करें कि आपके सभी कतार वैध हैं अन्यथा क्लाइंट को चेतावनी भी मिलती है।

आशा है कि यह किसी को मदद करता है! माफ करना, जवाब देने / योगदान करने के लिए एक साल लगा। 🙂

मेरा संस्करण ऐसा है:

मेरे सर्वर पर PHP:

 <?php header('content-type: application/json; charset=utf-8'); $data = json_encode($_SERVER['REMOTE_ADDR']); $callback = filter_input(INPUT_GET, 'callback', FILTER_SANITIZE_STRING, FILTER_FLAG_ENCODE_HIGH|FILTER_FLAG_ENCODE_LOW); echo $callback . '(' . $data . ');'; ?> 

पृष्ठ पर jQuery:

 var self = this; $.ajax({ url: this.url + "getip.php", data: null, type: 'GET', crossDomain: true, dataType: 'jsonp' }).done( function( json ) { self.ip = json; }); 

यह क्रॉस डोमेन काम करता है यह स्थिति की जांच का उपयोग कर सकता है उस पर कार्य करना

यदि क्लाइंट को जावा स्थापित है, तो आप ऐसा कुछ कर सकते हैं:

 ipAddress = java.net.InetAddress.getLocalHost().getHostAddress(); 

इसके अलावा, आपको शायद एक सर्वर साइड स्क्रिप्ट का उपयोग करना होगा