web-dev-qa-db-ja.com

CMDまたはPowerShellを使用してプロキシサーバーのIPアドレスを取得する方法

プロキシアプリケーション(PsiphonやProtonVPNなど)を使用してインターネットに接続しています。インターネットに接続しているIPアドレスを取得したい。

後でAutohotkeyでIPアドレスを使用したいので、CMDまたはPowerShellを使用する必要があります。

今、私はこれを行う方法を非常に長い間探していましたが、それは不可能であるという結論に達しました。しかし、何かが足りない可能性があるため、この質問をすることにしました。また、回避策やアプリケーションも評価されます。

これが私がこれまでに試したことです:

CMD:

for /F "tokens=2" %i in ('"nslookup myip.opendns.com resolver1.opendns.com | find /i "address" | find /v "208.67.222.222""') do echo %i

このコマンドは私の実際のIPアドレスを出力しますが、プロキシを経由しません。

そして、それが機能しない理由は、これです: Windows、管理者ではありません:プロキシはFirefoxで機能しますが、cmdでは機能しません、なぜですか?

したがって、上記の質問に対する答えは、TCP接続がプロキシされると主張しているので、これを見つけました:

パワーシェル:

Resolve-DnsName -Name myip.opendns.com -Server resolver1.opendns.com -TcpOnly

しかし、これも機能しません。

1
Shayan

次のPowerShellコマンドを使用して、RESTfulWebサービスを使用してHTTP経由でパブリックIPを取得できます。

Invoke-RestMethod http://ipinfo.io/json | Select -exp ip

ルーティングテーブルの構成などによっては、この方法が機能しない場合があります。

この場合、私はそれがあなたを助けてくれてうれしいです。

2
CraftyB

Windows 10ビルドが17063以降の場合は、cUrl.exeを使用しても機能します。 C:\windows\system32\cUrl.exe

  • パワーシェル
$_pub_ip=curl ipecho.net/plain | sls [0-9]
$_pub_ip=curl icanhazip.com    | sls [0-9]
$_pub_ip=curl ifconfig.me      | sls [0-9]
$_pub_ip=curl ifconfig.co      | sls [0-9]

rem :: For proxy 
$_pub_ip=curl -x [your_ip_local |or| 127.0.0.1]:[door] http://ipecho.net/plain  | sls [0-9]
$_pub_ip=curl -x [your_ip_local |or| 127.0.0.1]:[door] http://ipecho.net/plain  | sls [0-9]
$_pub_ip=curl -x [your_ip_local |or| 127.0.0.1]:[door] http://icanhazip.com     | sls [0-9]
$_pub_ip=curl -x [your_ip_local |or| 127.0.0.1]:[door] http://ifconfig.me       | sls [0-9]
$_pub_ip=curl -x [your_ip_local |or| 127.0.0.1]:[door] http://ifconfig.co       | sls [0-9]
  • CMD /バッチ
rem :: in command line :: 
@for /f tokens^=* %i in ('curl ipecho.net/plain -B -s')do @set "_pub_ip=%~i" && @call echo\%_pub_ip%

rem :: in bat/cmd file :: 
@for /f tokens^=* %%i in ('curl ipecho.net/plain -B -s')do @set "_pub_ip=%%~i" && @call echo\%_pub_ip%
  • プロキシの場合:
:: in command line ::
@for /f tokens^=* %i in ('curl -x [your_ip_local |or| 127.0.0.1]:[door] http://ipecho.net/plain -B -s')do @set "_pub_ip=%~i" && call echo\%_pub_ip%

:: in cmd/bat file ::
@for /f tokens^=* %%i in ('curl -x [your_ip_local |or| 127.0.0.1]:[door] http://ipecho.net/plain -B -s')do @set "_pub_ip=%%~i" && call echo\%_pub_ip%

[√]ソース

1
It Wasn't Me