0

カスタムIPを使用してDelphiからURLをヒットしたい。http://delphi.xcjc.net/viewthread.php?tid=47042を使用しようとしていますが、 これは宛先IPとポートのみを受け入れます。

URLに変更するにはどうすればよいですか?

4

2 に答える 2

2

HTTP/HTTPS はTCPを使用するため、TCP 接続を介して IP アドレスをスプーフィングすることはできません。

TCP 接続で IP アドレスをスプーフィングできない理由は、TCP 接続でハンドシェイクが行われるためです。ACK には、サーバーから送信された乱数がハンドシェイクの SYN-ACK 部分に含まれている必要があります。

IP アドレスについてサーバーに嘘をついた場合、SYN-ACK を受信しないため、ハンドシェイクを完了するために必要な情報を取得できません。

乱数を推測できる場合、それは別の話です。以前は、これは一般的な戦術でしたが、その後プロトコルは改善されました。

Indy UDP ソケットを使用するとコネクションレスであるため、 UDPでIP アドレスをスプーフィングできますが、もちろんサーバーからの応答は得られません。

Windows XP SP3 以降では、raw ソケットへのアクセスには昇格された特権が必要です。これは自分のマシンでは問題ありませんが、他の人が実行するソフトウェアを開発している場合は、特権の問題を回避するために、おそらく独自の IP スタックを構築することをお勧めします。

一部のゲームのように UDP で実行されるサービスもありますが、Web はほとんどが TCP であるため、スプーフィングはほとんど問題になりません。

実際の IP アドレスを偽装しようとしている場合は、サードパーティの IP アドレスを介してトラフィックを転送するリモートプロキシ サーバーの使用を検討してください。すべての意図と目的において、あなたは代理人のように見えます。

于 2012-07-17T12:57:57.790 に答える
0

私が思うに、そのコードの周りに独自の http ラッパーを作成する必要があります。

Http は、取得するページをサーバーに通知するヘッダーを含む IP アドレスとポートにテキスト メッセージを送信することによって機能します。

したがって、あなたの場合、URL のサーバーとドメインの部分を使用して IP アドレスを検索し、http 要求メッセージを作成する必要があります。

http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol

http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html

ただし、IP アドレスを偽装すると応答が得られないことに注意してください。また、IP アドレスを偽装すると、ISP との契約違反になる可能性があります。

これを行うためのライブラリが存在するかもしれませんが、それらの多くは議題を持つ人々によって書かれている可能性があるため、隠された驚きに注意してください;)

于 2012-07-17T07:07:06.413 に答える