Windows "ipconfig" コマンドは、マシンのイーサネットインターフェイスからのパラメータのみを表示できます(ipconfig /all
引数)。インターフェースに関する詳細情報を表示できますが、 [〜#〜] nat [〜#〜] ネットワーク上の外部IPアドレスは表示されません。
ただし、外部IPアドレスを取得して表示できる "What is my IP address" など、いくつかのWebサイトがあります。だから、私はこの値を外部から取得することが可能かどうか疑問に思っていますか?私のローカルマシンのコマンドラインからこの情報を取得する方法があると思いますか?.
VBScript で実行しているアプリケーションにログオンするには、この値を取得する必要があります。 Windowsのcmd
からこれを行う方法はありますか?
これで、提供されたサイトOliverを使用して、これをVBScriptで実行できます。
Dim o
Set o = CreateObject("MSXML2.XMLHTTP")
o.open "GET", "http://ifconfig.me/ip", False
o.send
WScript.StdOut.Write o.responseText
PowerShellにも同様の方法があります。
問題は、それがあなたのIPアドレスではないということです。ルーターのIPアドレスです。
したがって、ルーターを経由せずにそれを取得することはできません。そして、最も簡単な方法は、ルーターにWebサイトを取得させることです(既にお気づきのように)。これは、ルーターがIPアドレスを使用してそのサイトを取得するためです。
そうは言っても、 ifconfig.me/ip を使用することで自分自身を簡単にすることができます。 curl
があれば、もう完了です。もしそうでなければ、- Wget/cURL Windowsネイティブの代替?
VBスクリプトを作成して、自由に実行できます。
これをtxtファイルに入力します。
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
Txtファイルを閉じ、名前をip.vbsに変更します(この例ではC:に保存します)。
ウィンドウでdosウィンドウを開く(cmdを実行)(ha!スワップすると、実行dmc !!)になることがわかりました
C:/にいることを確認します(そうでない場合は、c:と入力してEnterキーを押し、次にcdを押します。 。&C:>が表示されるまで数回入力します
Dosプロンプトで次のように入力します。
cscript ip.vbs
すぐに外部IPが表示されます。
あなたがvbsファイルをusbキーまたは何かの上に置いた場合(そしてdosプロンプトでcscript ip.vbsを実行することを忘れないでください-しかし、あなたがip.vbsファイルと同じディレクトリにあります。これをどこにでも持って行き、任意のコンピューターで.vbsファイルを実行して外部IPを確認できます。
もう1つの注意点として、icanhazip.comのアドレスを持つ行は、次のいずれかに変更できます。
http://myip.dnsomatic.com
http://whatismyip.org
http://icanhazip.com
http://www.whatismyip.com/automation/n09230945.asp
http://externip.com
編集、dosウィンドウに移動せずにウィンドウでip.vbsファイルを実行することもでき、小さなポップアップウィンドウに表示されます。
同等のPowerShellを探しているときにこのサイトで偶然見つけました。他の誰かが探しているのであれば、このコマンドを共有したいと思いました。
Invoke-WebRequest ifconfig.me/ip
詳細が必要な場合は、こちらから入手できます- http://jfrmilner.wordpress.com/2012/12/22/powershell-quick-tip-03-whats-my-external-ip-address-windows-コマンドライン/
外部IPアドレスを取得するには、ネットワークの外部で何かを要求し、IPアドレスが「どのように見える」かを報告する必要があります。これは、結果を簡単に解析してそこからIPアドレスを取得するページにクエリを実行することにより、スクリプトを使用して行うことができますが、Windowsに組み込まれているツールで外部IPアドレスを通知することはできません。自分で作成するか、見つけてダウンロードする必要があります。
DynDNS のようなものを使用してDHCP IPアドレスにドメイン名を割り当て、次にnslookup
ofまたはping(ルーターが応答するように構成されている場合)、ドメイン名、および抽出を実行できますそのIPアドレス。
他の唯一のWindowsユーティリティはtraceroute
ですが、接続する送信ゲートウェイのみが表示され、そのゲートウェイに接続しているルーターのIPアドレスは表示されません。
編集:IPアドレス文字列を抽出するために上記で少し解析する必要があり、ifconfig.me
にはニーススパースレスポンスがあるため、ここにボブのスクリプトのバリアントの少し、関数は応答がないかどうかをテストし、サーバーが起動している場合にスクリプトで使用するためのすてきなクリーンIPアドレスを返すことができます。
wscript.echo WAN_IP()
function WAN_IP()
set obj = createobject("Microsoft.XMLHTTP")
call obj.open("get", "http://ifconfig.me/ip", false)
obj.send()
strresponse = obj.responsetext
set obj = nothing
if strresponse <> "" then
strIP = strresponse
else
strIP = "Unavailable"
end if
WAN_IP = trim(strIP)
end function
他の人がすでに言ったように、あなたは外部サービスに依存する必要があります。お勧めします http://www.externalip.net
http://api.externalip.net/ip を使用して、プレーンテキスト形式でIPを取得できます。高速で信頼性が高く、無制限に使用できます。
ルーターがユニバーサルプラグアンドプレイ(UPnP)をサポートしている場合は、そのIPアドレスを照会できます。
Windowsでは、WMIを使用して、およびWMICツールを使用してコマンドラインからこのような情報を照会できます。