0

C# (Windows フォーム アプリケーション) を使用して、その URL から Web サイトに専用 IP アドレスまたは共有 IP アドレスがあるかどうかを検出することは可能ですか? [テスト] ボタンをクリックするよりも、Web アドレスを TextBox に書き込むことができるように、アプリケーションに機能を実装したいと考えています。サイトに専用 IP アドレスがある場合は (Success) MessageBox を表示し、それ以外の場合は (Failure) MessageBox を表示します。

C#.NET を使用して Web サイトに共有 IP アドレスまたは専用 IP アドレスがあるかどうかを検出するにはどうすればよいですか?

4

3 に答える 3

2

試すことはできますが、決して良い結果は得られません。あなたができる最善の方法は、IP の PTR レコードを確認してから、別の Web サイトからの関連する A レコードがあるかどうかを確認することです。ただし、Web サイトには、同じ組織に関連する一見異なる 2 つのドメイン (たとえば、googlemail.com/gmail.com) が含まれている可能性があるため、これは依然として問題です。

また、これは PTR レコードが複数存在することを前提としています。ほとんどの VPS/共有ホスティングでサポートされているような設定を見たことがないと思います。

于 2012-04-16T15:17:03.080 に答える
0

まあ、私がそれをする方法は次のとおりです:

  1. HTTP GETをURLに送信し、結果を保存します。
  2. URLをIPに解決します。
  3. HTTP GETをIPに送信し、結果を保存します。
  4. 2つの結果を比較します。(2つの結果の間でサンプルチェックを行うことができます)
  5. 結果が同じである場合、これは専用ホスティングであり、結果が異なる場合、これは共有ホスティングです。

私が今考えることができるこの方法の制限:

  1. 2つの結果の適切な比較方法を理解するのに時間がかかります。
  2. 共有ホスティングが、チェックしているサイトへのデフォルトルートに設定されている場合。

URLを解決し、さまざまなプログラミング言語のWeb要求を実行する機能は、インターネット全体に散在しています。

于 2012-04-16T18:27:51.567 に答える
0

技術的な観点からは、「共有」または「専用」IP アドレスなどはありません。プロトコルは区別しません。これらは、IP の使用方法を説明するために使用される用語です。

そのため、「これは共有ですか、それとも専用ですか?」と答えるプログラム的な方法はありません。この質問に対する他の回答のいくつかは、特定のドメインが共有 IP 上にあるかどうかを推測するいくつかの方法を示唆していますが、それらの方法はせいぜい推測にすぎません。

本当にこの道を進みたい場合は、Web をクロールして、すべてのドメインの解決済み IP を保存できます。(簡単ですよね?) 次に、特定の IP でホストされているすべてのドメインについて、大規模なデータベースにクエリを実行できます。(サーバー上でホストしている複数のドメインを識別できたのは最初のツールだけでしたが、既にこれを行っているように見えるツールあります。)

もちろん、サーバー ハードウェア自体が共有されている VPS (または Amazon EC2 など) では、これはすべて無駄ですが、すべての顧客 (ドメイン) は 1 つ以上の専用 IP を取得します。外部からは、そのようなサーバーがどのようにセットアップされているかを知る方法はありません。


TL;DR:これは信頼できる方法では実行できません。

于 2012-04-16T19:19:07.600 に答える