HTTPプロキシのユーザー名/パスワードに特殊文字を使用する方法は?


26

WindowsマシンでHTTPプロキシをセットアップしようとしています。問題は、パスワードに特殊文字(@)が含まれているため、setコマンドが失敗することです。

文字をエスケープ(\@)し、16進値でパーセントエンコード(%40)してみましたが、何の効果もありませんでした。

たとえば、ユーザー名FooとパスワードB @ rを使用して、次のコマンドを試しました。

set http_proxy=http://foo:B\@r@http-gateway.domain.org:80
set http_proxy=http://foo:B%40r@http-gateway.domain.org:80

パスワードを変更する以外に、プロキシでパスワードを使用するにはどうすればよいですか?


@記号が原因で、セットが失敗するか、http_proxy環境変数を使用するツールが失敗しますか?
マイクコーネル

はい。形式はusername:password @ server:portであるため、パスワードの中央に@があると、パスワードの右側がホスト名と見なされ、ホスト名がr @ http-であると見なされるため、上記のホスト名解決は失敗します。 gateway.domain.org。「r @」はそこにあるべきではありません。
プルムルティ

2
%40を使用してみましたが、(Windowsで)動作しましたが、確かですか?
-thegreendroid

実際、WindowsとLinux(Ubuntu)の両方で動作します。
-thegreendroid

回答:


29

あなたがする必要はありパーセントエンコード | 特殊文字をエンコードします。たとえば、これの代わりに:

http://foo:B@r@http-gateway.domain.org:80

あなたはこれを書く:

http://foo:B%40r@http-gateway.domain.org:80

@置き換えられ%40ます。


2
実際、エンコーディングはこの問題(および他の多くの問題)を回避する方法です。
HTDutchy

一部の文字を二重に
エンコードする

1
encodeURIComponent()この目的にJavaScript を使用することをお勧めします。ブラウザのを簡単に使用できますDeveloperTools -> Console
ミールイ

2

特殊文字には、16進表記の特殊文字の%Asciiコードを使用します。私のパスワードがAB @ 12#&である場合、パスワードは次のように設定する必要があります。

git config --global http.proxy *http://usernamne:**AB%4012%23%26**@myipadress:portnumber*

任意の数値の16進数のASCIIコードについては、asciiテーブルを参照してください。



-1

SOに関するこの回答に基づいて、^を使用して@記号をエスケープしてみてください。


両方に応答して、セットは成功し、環境変数を使用するツールです:set http_proxy=http://foo:B^@r@http-gateway.domain.org:80 jruby -S gem install rakeエラー:gem ...(URI :: InvalidURIError)の実行中、スキームhttpはレジストリ部分を受け入れません:foo:B @ r @ http- gateway.domain.org:80(または不正なホスト名?)
pyropenguin

これはLinuxベースの質問であり、Windowsベースの質問ではありません。^を使用してもうまくいきません。wget: unable to resolve host address プロキシ環境変数を設定した後、まだtf4ce @ server.company.com'`を取得しています。
プルミナティ

2
実際、それはWindowsベースの質問です...私はピロペンギンを個人的に知っています。
マイクコーネル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.