4

サーバーの IP アドレスを取得して、これを Key/Value 文字列コレクションと共に Payment Gateway プロバイダーに送信できるようにする必要があります。

私はlocalhostを実行しており、Request.ServerVariables["LOCAL_ADDR"]戻ってきています::1

私が得ている検証エラーは、Sage Pay から返されます。

ClientIPAddress の形式が無効です。先頭のゼロを含めず、0 ~ 255 の範囲の値のみを含めてください。

これはなぜですか? また、送信する有効な IP アドレスを取得するにはどうすればよいですか?

4

1 に答える 1

8

ローカル ネットワーク アダプターで IPv6 を無効にします。::1 は IPv6 の「LOCALHOST」を意味します。次に、通常のIPv4 127.0.0.1を取得します

とにかく、::1 は *有効な* IP アドレスです..

LOCALHOST 定義の詳細: http://en.wikipedia.org/wiki/Localhost

IPv4通信の場合、コンピュータ システムの仮想ループバック インターフェイスには通常、アドレス 127.0.0.1 とサブネット マスク 255.0.0.0 が割り当てられます。使用中の特定のオペレーティング システム (特に Linux および Microsoft Windows) およびインストールされているルーティング メカニズムに応じて、ローカル システムのルーティング テーブルにエントリが入力され、127.0.0.0/8 ブロックからの任意のアドレス宛てのパケットが内部でネットワーク ループバック デバイスにルーティングされます。

一方、 IPv6 では、ループバック ルーティング プレフィックス ::1/128 は、1 つのアドレス::1 (完全な表記で 0:0:0:0:0:0:0:1、1 を含むアドレス) のみで構成されます。最下位ビットで、それ以外の場合はゼロ) は、ループバック アドレスとして明示的に定義されています [6] が、ホスト管理者によって必要に応じて追加のアドレスがループバック インターフェイスに割り当てられる場合があります。

于 2012-06-29T11:59:07.990 に答える