विंडोज कमांड जो बाहरी आईपी लौटाता है


58

क्या कोई ऐसा आदेश है जिसके द्वारा मैं अपने राउटर या मेरे NAT \ DSL राउटर आदि के बाहरी आईपी पा सकता हूं, जो कि whatsmyip.net या इसी तरह की यात्रा करने की आवश्यकता को समाप्त करता है।


जवाबों:


14

ऐसा करने के लिए कोई अंतर्निहित कमांड नहीं है। समस्या का एक हिस्सा यह है कि जब आप एक राउटर के माध्यम से इंटरनेट से जुड़े होते हैं, तो आपका नेटवर्क हार्डवेयर सीधे इंटरनेट से जुड़ा नहीं होता है, इसलिए आपके सिस्टम को विशेष रूप से एक आईपी नहीं सौंपा जाता है। यह संभव है कि आपके पास कुछ मामलों में कई बाहरी आईपी हो सकते हैं यदि आप एक रिवर्स प्रॉक्सी के पीछे हैं, क्योंकि कई कॉर्पोरेट नेटवर्क स्थापित हैं। आपकी सबसे अच्छी शर्त एक स्क्रिप्ट तैयार करना हो सकती है , जो whatismyip.org पर सवाल करती है , या यदि पहले से मौजूद है तो उसे खोजने की कोशिश कर रही है।

(एक टिप के रूप में, whatismyip.org अधिकांश अन्य समाधानों के लिए बेहतर है, क्योंकि यह आपके आईपी को सादे पाठ के रूप में लौटाता है - कोई शानदार पाठ, लिंक, चित्र या अन्य कचरा नहीं। यह कस्टम स्क्रिप्ट के अधिकांश की तुलना में कस्टम स्क्रिप्ट में उपयोग करना बहुत आसान होगा। अन्य IP- पता लगाने वाली साइटें।)


6
उन्होंने whatismyip.org को बदल दिया, दुर्भाग्य से; आईपी ​​पते को अब एक छवि के रूप में लौटाया जाता है , जिससे यह स्क्रिप्टिंग के लिए बहुत बेकार हो जाता है। वेबसाइट "icanhazip.com" नीचे उल्लेख करता है काम करते हैं।
13

यैंडेक्स काम कर रहा है, नीचे पोस्ट की गई स्क्रिप्ट की जांच करें।
फ़िलिप याबा पोलीडो

नीचे से देशी कमान कार्य superuser.com/a/722397/216374
PsychoData

107

आप अपने सार्वजनिक आईपी का पता लगाने के लिए HTTP अनुरोध के बजाय एक DNS अनुरोध का उपयोग कर सकते हैं:

C:\> nslookup myip.opendns.com. resolver1.opendns.com

यह आपके आईपी ​​पते के लिए resolver1.opendns.comजादुई myip.opendns.com.hostname को हल करने के लिए dns सर्वर का उपयोग करता है । (नोट: लुकअप पर अनुगामी खोज डोमेन को अपडाउन करने से रोकता है, जिससे गलत परिणाम मिल सकते हैं।).

यूनिक्स संस्करण:

$ dig +short myip.opendns.com @resolver1.opendns.com

1
एक जादू की तरह काम किया।
बीके

शानदार, कुछ भी स्थापित किए बिना काम करता है।
एरिकोसग

नवंबर, 2017 में मेरे लिए काम नहीं किया, विंडोज 10 पर। ब्रैडली फोर्नी के काम से पावरशेल जवाब।
जेसन

मेरे लिए अभी भी काम किया (विंडोज 10, दिसंबर 2017)। बहुत चालाक @jfs, क्या OpenDNS ने कहीं यह दस्तावेज किया है कि आपने इसे कैसे खोजा?
एलेक्स कीस्मिथ

4
यह स्वीकृत उत्तर होना चाहिए, क्योंकि यह एक वास्तविक आदेश प्रदान करता है, और यह काम करता है। स्वीकृत उत्तर बताता है कि कोई आदेश नहीं है (जो गलत साबित होता है), और वास्तव में आगे की दिशा दिए बिना, एक स्क्रिप्ट का उपयोग करने का सुझाव देता है।
साइबर क्लॉ

30

http://curl.haxx.se/download.htmlcurl से अपनी स्वयं की प्रति पकड़ो और फिर बस

curl "http://myexternalip.com/raw"

या शक्तियां का उपयोग करें:

$wc = new-object System.Net.WebClient
$wc.DownloadString("http://myexternalip.com/raw")

(अस्वीकरण: http://myexternalip.com मेरे द्वारा बनाया गया था)


यह केवल एक IPv6 पता प्रदान करता है। क्या IPv4 पता प्राप्त करने का कोई तरीका है?
टाइम

मैंने पॉवरशेल के लिए नीचे IPv4 / IPv6 उदाहरणों को पढ़ा और पाया। इस तरह के CURL के साथ IPv4 प्राप्त करना संभव है "C:> कर्ल" myip.dnsomatic.com "
tim11g

7

यह अच्छी तरह से काम करता है, क्लाइंट कंप्यूटर कनेक्शन का निरीक्षण करते समय मैं इसका इस्तेमाल ज्यादातर पेसेक के साथ करता हूं।

nslookup myip.opendns.com resolver1.opendns.com

6

नाम से एक फ़ाइल बनाएं ip.vbsऔर उसमें निम्नलिखित कॉपी करें:

Option Explicit
Dim http : Set http = CreateObject( "MSXML2.ServerXmlHttp" )
http.Open "GET", "http://icanhazip.com", False
http.Send
Wscript.Echo http.responseText   'or do whatever you want with it
Set http = Nothing

का उपयोग कर निष्पादित करें

C:\>cscript ip.vbs

जैसा कि निहंकल ने कहा , ऐसी साइट का चयन करना सबसे अच्छा है जो केवल आईपी लौटाए न कि एचटीएमएल + विज्ञापन इत्यादि।

(स्रोत: पूर्व में http://externip.com/about )


5

मैंने कुछ महीने पहले इस बैच की स्क्रिप्ट बनाई थी:

@echo off

:: WhatIsMyIP.cmd - returns public IP address
:: requires: wget.exe

if [%1]==[-h] goto :HELP
if [%1]==[--help] goto :HELP
if [%1]==[/?] goto :HELP

wget -q -O %temp%\MyIP http://www.whatismyip.com/automation/n09230945.asp
for /f "delims= " %%G in (%temp%\myip) do set PublicIP=%%G & del %temp%\MyIP
echo. & echo Your public IP address is %PublicIP% & echo.
if [%1]==[--clip] echo %PublicIP% | clip
goto :EOF

:HELP
echo. & echo Usage: whatismyip [--clip] & echo.
goto :EOF

:EOF

यह आपको क्लिपबोर्ड में आईपी एड्रेस डालने का विकल्प देता है और यह एक पर्यावरण चर सेट करता है - %PublicIP%


SIMPLER विधि:

अब, मैं इसके बजाय यह करता हूं:

curl icanhazip.com

या ...

curl icanhazip.com | clip

... क्लिपबोर्ड में वर्तमान सार्वजनिक आईपी पता प्राप्त करने के लिए।

आपको CURL की आवश्यकता है ।


1
विरोधाभास से स्क्रिप्ट ठीक काम करती है, लेकिन व्हाट्सएप ने वेब पेज को स्वचालन में स्थानांतरित कर दिया है ।whatismyip.com/n09230945.asp यदि आप इसे बदलते हैं, तो यह सही काम करता है।

5

पॉवर्सशेल 3.0 (विंडोज 7 डिफॉल्ट 2.0) के साथ आप उपयोग कर सकते हैं Invoke-WebRequest

IPv4 के लिए:

$tmp =Invoke-WebRequest -URI http://myip.dnsomatic.com/
$tmp.Content

IPv6 के लिए:

$tmp =Invoke-WebRequest -URI http://myexternalip.com/raw
$tmp.Content

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

और निश्चित रूप से - जैसे-जैसे साइटें बदलती हैं या उनके आउटपुट बदलते हैं, आप उसी के अनुसार इसे अपडेट करना चाहेंगे। :)


इस दृष्टिकोण ने विंडोज़ 10 पर मेरे लिए बहुत अच्छा काम किया। मुझे एक-लाइन कमांड की आवश्यकता थी, इसलिए बाद में उद्धरणों में ऊपर भाग गया powershell.exe -noprofile -command ""। एक अर्धविराम के साथ लाइन-ब्रेक को अलग करें ...
जेसन

1
एक लाइन? बस चलाते हैं(Invoke-WebRequest -URI http://myip.dnsomatic.com).Content
मिलाता है

3

इसे आज़माएं:
किसी भी प्रकार के बाहरी सॉफ़्टवेयर को स्थापित करने की आवश्यकता नहीं है।

@set @script=0 /*
  @echo off
    set @script=
    cscript //nologo //e:jscript "%~dpnx0"
  exit /b
*/

with (new ActiveXObject('Microsoft.XMLHTTP')) {
   open('GET', 'http://internet.yandex.ru/', false);
   send();

   WScript.echo(responseText.match(/IPv4:\s(\d+\.){3}\d+/g));
}

3

बिना थर्ड पार्टी प्रोग्राम के विंडोज पर मुश्किल है क्योंकि टेलनेट डिफ़ॉल्ट रूप से आपूर्ति नहीं करता है, लेकिन, अगर यह वहां (एक्सपी) है या चालू (विंडोज विस्टा और ऊपर), बस टाइप करें:

telnet curlmyip.com 80

स्क्रीन फ्लैश होगा, और आपको बस एक कर्सर मिलेगा ... अगला प्रकार:

GET

बड़े अक्षरों में ... तब आप हेडर देखेंगे, उसके बाद आपके आईपी (और क्षमा करें, मैंने इसे धुंधला कर दिया है, बस दिखा रहा है कि यह कहां होगा!):

यहाँ छवि विवरण दर्ज करें

यहां अन्य उत्तर स्पष्ट रूप से काम करते हैं, लेकिन, मैं किसी ऐसी चीज पर सवाल रखने की कोशिश कर रहा हूं जिसका उपयोग किसी भी विंडो पर किया जा सकता है, तीसरे पक्ष के कार्यक्रमों के बिना!

Windows Vista और इसके बाद के संस्करण के लिए, आप आसानी से (और सुरक्षित रूप से) टेलनेट स्थापित कर सकते हैं Programs and features, या निम्न कमांड का उपयोग कर सकते हैं:

pkgmgr /iu:”TelnetClient”

वह (और अधिकांश उत्तर!) यह मानता है कि स्रोत वेबसाइट आपके आईपी पते को सटीक रूप से उठाती है - कुछ प्रकार के परदे के पीछे इसको गड़बड़ करते हैं। मैं अपने राउटर को इस कारण से अपना आईपी पता स्क्रैप कर रहा था। दिलचस्प बात यह है कि इन मामलों में, गैर मानक पोर्ट का उपयोग करने वाली वेबसाइट ठीक काम कर सकती है।
जर्नीमैन गीक

साथ काम नहीं कर रहा है curlmyip.com, लेकिन परीक्षण के साथ काम कर रहा है checkip.dyndns.org
सोलापाजो डी एरियेरेज़

2

आप ifcfg.me का उपयोग कर सकते हैं । यह कुछ आंतरिक कमांड का समर्थन करता है जो डिफ़ॉल्ट रूप से विंडोज़ के साथ आते हैं।

curl ifcfg.me
nslookup . ifcfg.me
telnet ifcfg.me
ftp ifcfg.me
finger @ifcfg.me

1

मैं एक समाधान चाहता था जो तृतीय पक्ष उपकरण स्थापित किए बिना विंडोज के लिए काम करता है । इसलिए मैंने पॉवरशेल विकल्प लिया , जिसमें हर घंटे एक स्क्रिप्ट चलनी चाहिए।

आप इस स्क्रिप्ट को नोटपैड के साथ बनाएँ

$wc = new-object System.Net.WebClient
$ip = $wc.DownloadString("http://myexternalip.com/raw")
$LogTime = Get-Date -Format "MM-dd-yyyy_hh-mm-ss"
Add-Content C:\Users\Administrator\Desktop\logs\IPLog.txt $LogTime
Add-Content C:\Users\Administrator\Desktop\logs\IPLog.txt "`n"
Add-Content C:\Users\Administrator\Desktop\logs\IPLog.txt $ip
Add-Content C:\Users\Administrator\Desktop\logs\IPLog.txt "`n"

और इसे getIP.ps1कहीं और बचाओ । आप इस स्क्रिप्ट को सीधे शब्‍दशैली में कॉल कर सकते हैं या कार्य योजना का उपयोग कर सकते हैं जैसा मैंने किया था। यह निष्पादन के लिए आदेश है:

powershell -executionpolicy bypass -File C:\Users\Administrator\Desktop\getIP.ps1

कार्य शेड्यूलर में आप एक नया कार्य बनाते हैं। पर उत्प्रेरक आप उपयोग की स्थापना हर 1 दिन के लिए दैनिक और उन्नत विकल्प आप चुनते के तहत तुरंत की अवधि के लिए हर घंटेसेटिंग्स में एक निर्धारित शुरुआत छूटने के बाद जितनी जल्दी हो सके रन टास्क की जांच करें । एक्शन के तहत आप उपरोक्त निष्पादन कोड पेस्ट करें।

पॉवरशेल कोड को ऑप्टिमाइज़ किया जा सकता है, क्योंकि मैं कोई पॉवरशेल गुरु नहीं हूं (इसके साथ मेरा पहली बार)। अब मैं परीक्षण कर रहा हूं कि क्या स्क्रिप्ट को हर घंटे कहा जाता है।


1

यहाँ मुझे पता चला है कि, सार्वजनिक आईपी पता प्राप्त करने के लिए इन-बिल्ट कमांड का उपयोग करना संभव है लेकिन आपके पास इंटरनेट तक पहुंच है

telnet icanhazip.com

या

telnet myip.gelma.net

अच्छी पकड़! हालांकि icanhazip.comमेरे लिए काम नहीं करेगा और दूसरा आईपीवी 6 ठीक से नहीं करता है। :)
डेनियल बी

0

यदि आप अपने राउटर के बाहरी आईपी को निकालने वाले HTML को पार्स कर सकते हैं तो ipchicken.com टेक्स्ट फॉर्मेट में आपके स्पष्ट आईपी पते को लौटा देगा। वैकल्पिक रूप से आप उन गतिशील डीएनएस एजेंटों में से एक को स्थापित कर सकते हैं जो आपके स्पष्ट बाहरी आईपी को एक एफक्यूडीएन में अपडेट करते हैं और फिर अपने वर्तमान आईपी नंबर को देखने के लिए अपने एफक्यूएनडी पर सिर्फ nslookup करते हैं। पहले डीएनडीएनएस की तरह फ्री हुआ करते थे लेकिन अब उनमें से अधिकांश को पेड सब्सक्रिप्शन अकाउंट की आवश्यकता होती है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.