- ベストアンサー
ネットワークの指定方法とは?
- 1つのPCで複数のクライアントソフトを起動してログインする際、同一グローバルIPでのログインが拒否される問題について解決策を探しています。
- ユーザーIDを複数持つ場合、複数のPCを用意し、プロバイダも別にすることで同一PCでもログイン可能になる可能性があります。
- また、複数のネットワークカードに固定IPアドレスを指定することや、レンタルサーバーを借りて複数の固定IPを追加することも調査中です。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
いくつか案を示します。 (案1) VMWare等の仮想マシンを使います。 1つの物理マシンの中に複数の仮想マシンを作り、 それぞれに別々のIPを割り当て、それぞれ1個づつ アプリを起動します。 仮想マシンのネットワークは、NATではなくブリッジを 使用します。これにより、1つの物理NICに各仮想マシンで 使用するIPアドレスが複数割り当てられます。 これの欠点は、仮想マシンのOSをインストールするのに お金がかかることです。1つのOSライセンスを複数の マシンにインストールするのはライセンス違反です。 企業でボリュームライセンスを購入しているなら対応しやすい かもしれません。 それと、複数仮想マシンを起動するのにも時間とメモリを 浪費します。 (案2) レンタルサーバーを借りてそこでクライアントを動かすつもりなら、 複数レンタルサーバーを借りてしまえばいいんじゃないでしょうか? どれくらいの期間使用するかにもよりますが、(案1)よりは安上がりかも しれません。 (このレンタルサーバって、リモートデスクトップ等でログインできる WindowsのVPSのことを言ってるんですよね?) (案3) そのクライアントプログラムををあなたが改造できるのであれば、 プログラムを改造して、TCP/IPコネクション生成処理で各アプリ毎に 送信元IPを指定できるようにします。 そのクライアントプログラムがC#でソケットを使っているのであれば、 Socket.Connectメソッドの前にSocket.Bindメソッドを使ってローカル エンドポイントを指定すればよいです。 (参考: Socket.Bind) http://msdn.microsoft.com/ja-jp/library/system.net.sockets.socket.bind(v=vs.110).aspx (久しぶりにMSDNライブラリに行ったら、機械翻訳の精度が上がっててびっくり! 人間翻訳かと思えるくらい普通に日本語として読めるようになってますね。) (案4) クライアントの改造をする権限がなく、複数の(仮想)マシンを手当てするのも 難しくて、あなたの元々の提案のようにクライアント起動前に何か設定変更 プログラムを走らせることで送信元IPを切り替えたいのであれば、もしかすると ルーティングテーブルを操作してなんとかなるかもしれません。 本当にできるかどうかわかりませんが、概要を伝えると、 まずIPアドレスA,B,C,Dそれぞれに対して別々にルーティングテーブルを 設定します。 その際、IP-Aのルーティング情報のメトリックだけ少し小さい値にして、他は大きい値にします。 そしてクライアントAを起動します。 次に、IP-Bのルーティング情報のメトリックを他より小さい値にして、クライアントBを起動します。 クライアントC,Dは以下同様です。 たぶん、これでクライアントプログラムがconnectする時に優先して選ぶ送信元IPを替えられる んじゃないかと思います。まぁ、他に方法がなければ試してみてください。 ただ、もしクライアントプログラムが起動中に何度もコネクションを生成し直すのであれば この方法もダメでしょう。 ルーティングテーブルとかメトリックとかについては、以下のような記事を参考にしてください。 http://www.atmarkit.co.jp/fwin2k/win2ktips/266routing/routing.html (番外) 使ったことなくて全く詳しくないんですが、Torのような送信元IP匿名化システムを使う? これってWebアクセスしか使えないのかもしれませんけど。 あぁ、もしそのクライアント-サーバ間の通信方法がWebなのであれば、プロキシをかます とか他にも方法はあるかもしれません。
その他の回答 (3)
- koi1234
- ベストアンサー率53% (1866/3459)
>ご紹介いただけませんでしょうか? VPN とか プロキシ proxy といったキーワードでで調べてください 無料で使えるものも有料のものも存在します 具体的に何をしたいかによってもどちら使ったほうがいいのかが変わってきたりしますし 使うことによってリスクが発生することもあるのでそのあたりも勉強してください
補足
ご返答ありがとうございます。 さて、VPNとProxyというキーワードが出てきましたが、私のイメージでは、 VPNは、共有回線を専用回線に見立てる技術 Proxyは、イントラネットとインターネットの中間にいて、監視や管理をする技術 というイメージがあります。 それと今回の件と何か関係するのでしょうか? 偽装IPの件かな? 私の知識不足かな?(汗 >ネットワークカードを2枚挿して、2つのプロバイダと契約をして、 >それぞれのLANポートに、それぞれのプロバイダにつなげれば、 >1つのPCでログインできるのではないかと思って調べていました。 構造的に上記となんら変わらない気がしますが・・・ ただ、これですと、その業務アプリがIP指定できない為、 >IPアドレスの若い方に自動的に送信してしまうと思います。 ※これも補足させていただきました。 質問にも書いてありますが、私が知りたいのは 複数のIPアドレスをNICに登録することはいろいろとサイトも拝見しました。 その後、C#で明示的にIPアドレスを指定(変更)が可能かどうか? ということです。 どなたか、お詳しい方、ご教授願いします。
- koi1234
- ベストアンサー率53% (1866/3459)
No1 追加 あと この件に関して レンタルサーバなんて何の役にも立ちません
- koi1234
- ベストアンサー率53% (1866/3459)
内容見る限りあなたは思い切り勘違いしてると思うので今のまま 作業しても全部無駄になるかと思います 1台のPCでグローバルIP切り替えることは確かにできますが それを同じアプリでそれぞれ単独に切り替えて使うことはできませんし 接続したものの状態を維持したままグローバルIPを変更することはできません (その段階で通信経路が切り替わるのでそれまでの通信セッションが遮断されます) 特にゲームとか言った話ですと 確実に回線が落ちると思われます サービス内容によっては動くものがあるかもしれません ブラウザゲームならブラウザ別のもの使ってそれぞれがプロキシアクセス することで可能な場合もあります そのサービスがなんなのかを書いた方がいいと思いますよ
補足
ご返答ありがとうございます。 質問の仕方に問題があったかもしれません。 同じアプリといっても、プログラムを同じものを4つ用意します。 1つのプログラムを切り替える訳ではありません。 もちろん、同一アプリで切り替えれば、一度遮断されることは承知しております。 アプリは個人で作ったようなC/Sの業務アプリです。 クライアントも4つあるとイメージしていただきたいです。 IPアドレスAの指定(変更) クライアント[A]の起動 IPアドレスBの指定(変更) クライアント[B]の起動 IPアドレスCの指定(変更) クライアント[C]の起動 IPアドレスDの指定(変更) クライアント[D]の起動 通常、レンタルサーバーのIPアドレスの追加サービスは、 複数のレンタルサーバーなどでサービスを提供していて、 各IPアドレスで運用していたサービスなどを 統合したときに、非常に便利な機能だとおもいますが、 サーバーが受信するときではなく、サーバーから発信するときに、 明示的に切り替えることが出来るのかを知りたいです。 調べていると、IPアドレスの若い方に自動的に送信してしまうとか、 明示的には出来ないとか、出来るとか・・・ これだ!という例えが無く、知識も乏しいため、 何が正しくて、何が間違っているのか、判断でき無い事と、 検索の仕方も的確ではないので困っておりました。 >1台のPCでグローバルIP切り替えることは確かにできますが これを知りたいです。 なにか、参考になるサイトでも結構です。 ご紹介いただけませんでしょうか? よろしくお願いします。
お礼
とても参考になりました。 ありがとうございます。 (1)VMWare (2)VPS等のレンタルサーバー 上記2つは手軽ではない事と、コストの件と 質問に書かなかったのですが、複数動かす理由は 業務アプリの状態を監視するシステムを作りたいので 構造的に問題があります。 まあ、自分でC/Sを作れば問題は解決しますが、それが大変そうなので もっと簡単な方法を探していました。 (3)業務アプリの改造 Bindすれば良いと言う所まではたどり着いていましたので 開発元にお願いしたのですが、残念な結果となってしまいました。 もちろん、デコンパイルでもしない限り無理ですし 開発者の知的財産なので、したくはありません。 (4)ルーティング操作 これをチャレンジしてみます。 少しググッて見ましたが、メトリックを小さくしても、だめな場合もあるという記事もありました。 しかし、やってみる価値がありそうです! ネットワーク技術は大変だ・・・泣 C/Sを作るより良いかな?・・・笑 (番外)Tor 基本的に正攻法で行きたいので・・・ やっと糸口が見つかった・・・ 本当にありがとうございました!